diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1b7c03ebb..aad28a2d8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -48,6 +48,7 @@ benchmark: unit-testing: stage: test + retry: 2 cache: &testing_cache_policy <<: *global_cache_policy policy: pull @@ -80,6 +81,7 @@ unit-testing: unit-testing-rum: stage: test + retry: 2 cache: *testing_cache_policy services: - name: minibikini/postgres-with-rum:12 diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a38e4c11..997be5dc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [unreleased] ### Changed +- MFR policy to set global expiration for all local Create activities
API Changes - **Breaking:** Emoji API: changed methods and renamed routes. @@ -15,14 +16,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - **Breaking:** removed `with_move` parameter from notifications timeline. ### Added +- 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. - 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
API Changes - Mastodon API: Extended `/api/v1/instance`. @@ -30,6 +36,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Mastodon API: Added `/api/v1/notifications/:id/dismiss` endpoint. - Mastodon API: Add support for filtering replies in public and home timelines - Admin API: endpoints for create/update/delete OAuth Apps. +- Admin API: endpoint for status view.
### Fixed @@ -37,27 +44,48 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - **Breaking**: SimplePolicy `:reject` and `:accept` allow deletions again - 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 -### Changed -- MFR policy to set global expiration for all local Create activities +## [Unreleased (patch)] + +### Fixed +- Healthcheck reporting the number of memory currently used, rather than allocated in total +- `InsertSkeletonsForDeletedUsers` failing on some instances + +## [2.0.3] - 2020-05-02 -## [unreleased-patch] ### Security - Disallow re-registration of previously deleted users, which allowed viewing direct messages addressed to them - Mastodon API: Fix `POST /api/v1/follow_requests/:id/authorize` allowing to force a follow from a local user even if they didn't request to follow +- CSP: Sandbox uploads ### Fixed -- Logger configuration through AdminFE +- Notifications from blocked domains +- Potential federation issues with Mastodon versions before 3.0.0 - HTTP Basic Authentication permissions issue +- Follow/Block imports not being able to find the user if the nickname started with an `@` +- Instance stats counting internal users +- Inability to run a From Source release without git - ObjectAgePolicy didn't filter out old messages +- `blob:` urls not being allowed by CSP ### Added - NodeInfo: ObjectAgePolicy settings to the `federation` list. +- Follow request notifications
API Changes - Admin API: `GET /api/pleroma/admin/need_reboot`.
+### Upgrade notes + +1. Restart Pleroma +2. Run database migrations (inside Pleroma directory): + - OTP: `./bin/pleroma_ctl migrate` + - From Source: `mix ecto.migrate` + + ## [2.0.2] - 2020-04-08 ### Added - Support for Funkwhale's `Audio` activity @@ -156,6 +184,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Mastodon API: `pleroma.thread_muted` to the Status entity - Mastodon API: Mark the direct conversation as read for the author when they send a new direct message - Mastodon API, streaming: Add `pleroma.direct_conversation_id` to the `conversation` stream event payload. +- Mastodon API: Add `pleroma.unread_count` to the Marker entity - Admin API: Render whole status in grouped reports - Mastodon API: User timelines will now respect blocks, unless you are getting the user timeline of somebody you blocked (which would be empty otherwise). - Mastodon API: Favoriting / Repeating a post multiple times will now return the identical response every time. Before, executing that action twice would return an error ("already favorited") on the second try. diff --git a/benchmarks/load_testing/activities.ex b/benchmarks/load_testing/activities.ex index 482e42fc1..ff0d481a8 100644 --- a/benchmarks/load_testing/activities.ex +++ b/benchmarks/load_testing/activities.ex @@ -123,7 +123,7 @@ 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 @@ -137,8 +137,8 @@ defp generate_long_thread(visibility, user, friends, non_friends, _opts) do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "Start of #{visibility} long thread", - "visibility" => visibility + status: "Start of #{visibility} long thread", + visibility: visibility }) Agent.update(:benchmark_state, fn state -> @@ -186,7 +186,7 @@ defp insert_activity("simple", visibility, group, user, friends, non_friends, _o {:ok, _activity} = group |> get_actor(user, friends, non_friends) - |> CommonAPI.post(%{"status" => "Simple status", "visibility" => visibility}) + |> CommonAPI.post(%{status: "Simple status", visibility: visibility}) end defp insert_activity("emoji", visibility, group, user, friends, non_friends, _opts) do @@ -194,8 +194,8 @@ defp insert_activity("emoji", visibility, group, user, friends, non_friends, _op group |> get_actor(user, friends, non_friends) |> CommonAPI.post(%{ - "status" => "Simple status with emoji :firefox:", - "visibility" => visibility + status: "Simple status with emoji :firefox:", + visibility: visibility }) end @@ -213,8 +213,8 @@ defp insert_activity("mentions", visibility, group, user, friends, non_friends, group |> get_actor(user, friends, non_friends) |> CommonAPI.post(%{ - "status" => Enum.join(user_mentions, ", ") <> " simple status with mentions", - "visibility" => visibility + status: Enum.join(user_mentions, ", ") <> " simple status with mentions", + visibility: visibility }) end @@ -236,8 +236,8 @@ defp insert_activity("hell_thread", visibility, group, user, friends, non_friend group |> get_actor(user, friends, non_friends) |> CommonAPI.post(%{ - "status" => mentions <> " hell thread status", - "visibility" => visibility + status: mentions <> " hell thread status", + visibility: visibility }) end @@ -262,9 +262,9 @@ 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 @@ -272,7 +272,7 @@ defp insert_activity("tag", visibility, group, user, friends, non_friends, _opts {:ok, _activity} = group |> get_actor(user, friends, non_friends) - |> CommonAPI.post(%{"status" => "Status with #tag", "visibility" => visibility}) + |> CommonAPI.post(%{status: "Status with #tag", visibility: visibility}) end defp insert_activity("like", visibility, group, user, friends, non_friends, opts) do @@ -312,8 +312,7 @@ defp insert_activity("simple_thread", visibility, group, user, friends, non_frie actor = get_actor(group, user, friends, non_friends) tasks = get_reply_tasks(visibility, group) - {:ok, activity} = - CommonAPI.post(user, %{"status" => "Simple status", "visibility" => visibility}) + {: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) @@ -336,8 +335,8 @@ defp insert_activity("simple_thread", "direct", group, user, friends, non_friend {: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"]} @@ -527,9 +526,9 @@ defp insert_direct_replies(tasks, user, list, acc) do 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..0de4924bc 100644 --- a/benchmarks/load_testing/fetcher.ex +++ b/benchmarks/load_testing/fetcher.ex @@ -387,56 +387,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 }, diff --git a/benchmarks/load_testing/users.ex b/benchmarks/load_testing/users.ex index 1a8c6e22f..e4d0b22ff 100644 --- a/benchmarks/load_testing/users.ex +++ b/benchmarks/load_testing/users.ex @@ -55,7 +55,7 @@ defp generate_user(i) do name: "Test テスト User #{i}", email: "user#{i}@example.com", nickname: "nick#{i}", - password_hash: Comeonin.Pbkdf2.hashpwsalt("test"), + password_hash: Pbkdf2.hash_pwd_salt("test"), bio: "Tester Number #{i}", local: !remote } diff --git a/config/config.exs b/config/config.exs index 57072d3e6..9940fcfe9 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" @@ -183,6 +184,7 @@ email: "example@example.com", notify_email: "noreply@example.com", description: "A Pleroma instance, an alternative fediverse server", + background_image: "/images/city.jpg", limit: 5_000, chat_limit: 5_000, remote_limit: 100_000, @@ -238,9 +240,18 @@ account_field_value_length: 2048, external_user_synchronization: true, extended_nickname_format: true, - cleanup_attachments: false - -config :pleroma, :extensions, output_relationships_in_statuses_by_default: true + cleanup_attachments: false, + multi_factor_authentication: [ + totp: [ + # digits 6 or 8 + digits: 6, + period: 30 + ], + backup_codes: [ + number: 5, + length: 16 + ] + ] config :pleroma, :feed, post_title: %{ @@ -262,20 +273,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 @@ -369,6 +393,10 @@ 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, @@ -655,6 +683,8 @@ profiles: %{local: false, remote: false}, activities: %{local: false, remote: false} +config :pleroma, Pleroma.Web.ApiSpec.CastAndValidate, strict: false + # 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 12cd66cd5..086a28ace 100644 --- a/config/description.exs +++ b/config/description.exs @@ -28,7 +28,8 @@ %{ key: :filters, type: {:list, :module}, - description: "List of filter modules for uploads", + description: + "List of filter modules for uploads. Module names are shortened (removed leading `Pleroma.Upload.Filter.` part), but on adding custom module you need to use full name.", suggestions: Generator.list_modules_in_dir( "lib/pleroma/upload/filter", @@ -118,6 +119,11 @@ ] } ] + }, + %{ + key: :filename_display_max_length, + type: :integer, + description: "Set max length of a filename to display. 0 = no limit. Default: 30" } ] }, @@ -678,14 +684,6 @@ 7 ] }, - %{ - key: :federation_publisher_modules, - type: {:list, :module}, - description: "List of modules for federation publishing", - suggestions: [ - Pleroma.Web.ActivityPub.Publisher - ] - }, %{ key: :allow_relay, type: :boolean, @@ -694,7 +692,8 @@ %{ key: :rewrite_policy, type: [:module, {:list, :module}], - description: "A list of MRF policies enabled", + 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", @@ -712,7 +711,7 @@ key: :quarantined_instances, type: {:list, :string}, description: - "List of ActivityPub instances where private (DMs, followers-only) activities will not be send", + "List of ActivityPub instances where private (DMs, followers-only) activities will not be sent", suggestions: [ "quarantined.com", "*.quarantined.com" @@ -919,6 +918,69 @@ key: :external_user_synchronization, type: :boolean, description: "Enabling following/followers counters synchronization for external users" + }, + %{ + key: :multi_factor_authentication, + type: :keyword, + description: "Multi-factor authentication settings", + suggestions: [ + [ + totp: [digits: 6, period: 30], + backup_codes: [number: 5, length: 16] + ] + ], + children: [ + %{ + key: :totp, + type: :keyword, + description: "TOTP settings", + suggestions: [digits: 6, period: 30], + children: [ + %{ + key: :digits, + type: :integer, + suggestions: [6], + description: + "Determines the length of a one-time pass-code, in characters. Defaults to 6 characters." + }, + %{ + key: :period, + type: :integer, + suggestions: [30], + description: + "a period for which the TOTP code will be valid, in seconds. Defaults to 30 seconds." + } + ] + }, + %{ + key: :backup_codes, + type: :keyword, + description: "MFA backup codes settings", + suggestions: [number: 5, length: 16], + children: [ + %{ + key: :number, + type: :integer, + suggestions: [5], + description: "number of backup codes to generate." + }, + %{ + key: :length, + type: :integer, + suggestions: [16], + description: + "Determines the length of backup one-time pass-codes, in characters. Defaults to 16 characters." + } + ] + } + ] + }, + %{ + key: :instance_thumbnail, + type: :string, + description: + "The instance thumbnail image. It will appear in [Pleroma Instances](http://distsn.org/pleroma-instances.html)", + suggestions: ["/instance/thumbnail.jpeg"] } ] }, @@ -1046,32 +1108,98 @@ description: "Settings for Pleroma FE", suggestions: [ %{ - theme: "pleroma-dark", - logo: "/static/logo.png", - background: "/images/city.jpg", - redirectRootNoLogin: "/main/all", - redirectRootLogin: "/main/friends", - showInstanceSpecificPanel: true, - scopeOptionsEnabled: false, - formattingOptionsEnabled: false, - collapseMessageWithSubject: false, - hidePostStats: false, - hideUserStats: false, - scopeCopy: true, - subjectLineBehavior: "email", alwaysShowSubjectInput: true, - logoMask: false, + background: "/static/aurora_borealis.jpg", + collapseMessageWithSubject: false, + disableChat: false, + greentext: false, + hideFilteredStatuses: false, + hideMutedPosts: false, + hidePostStats: false, + hideSitename: false, + hideUserStats: false, + loginMethod: "password", + logo: "/static/logo.png", logoMargin: ".1em", - stickers: false, - enableEmojiPicker: false + logoMask: true, + minimalScopesMode: false, + noAttachmentLinks: false, + 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", + theme: "pleroma-dark", + webPushNotifications: false } ], children: [ %{ - key: :theme, + key: :alwaysShowSubjectInput, + label: "Always show subject input", + type: :boolean, + description: "When disabled, auto-hide the subject field if it's empty" + }, + %{ + key: :background, type: :string, - description: "Which theme to use, they are defined in styles.json", - suggestions: ["pleroma-dark"] + description: + "URL of the background, unless viewing a user profile with a background that is set", + suggestions: ["/images/city.jpg"] + }, + %{ + key: :collapseMessageWithSubject, + label: "Collapse message with subject", + type: :boolean, + description: + "When a message has a subject (aka Content Warning), collapse it by default" + }, + %{ + key: :disableChat, + label: "PleromaFE Chat", + type: :boolean, + description: "Disables PleromaFE Chat component" + }, + %{ + key: :greentext, + label: "Greentext", + type: :boolean, + description: "Enables green text on lines prefixed with the > character." + }, + %{ + key: :hideFilteredStatuses, + label: "Hide Filtered Statuses", + type: :boolean, + description: "Hides filtered statuses from timelines." + }, + %{ + key: :hideMutedPosts, + label: "Hide Muted Posts", + type: :boolean, + description: "Hides muted statuses from timelines." + }, + %{ + key: :hidePostStats, + label: "Hide post stats", + type: :boolean, + description: "Hide notices statistics (repeats, favorites, ...)" + }, + %{ + key: :hideSitename, + label: "Hide Sitename", + type: :boolean, + description: "Hides instance name from PleromaFE banner." + }, + %{ + key: :hideUserStats, + label: "Hide user stats", + type: :boolean, + description: + "Hide profile statistics (posts, posts per day, followers, followings, ...)" }, %{ key: :logo, @@ -1080,11 +1208,44 @@ suggestions: ["/static/logo.png"] }, %{ - key: :background, + key: :logoMargin, + label: "Logo margin", type: :string, description: - "URL of the background, unless viewing a user profile with a background that is set", - suggestions: ["/images/city.jpg"] + "Allows you to adjust vertical margins between logo boundary and navbar borders. " <> + "The idea is that to have logo's image without any extra margins and instead adjust them to your need in layout.", + suggestions: [".1em"] + }, + %{ + key: :logoMask, + label: "Logo mask", + type: :boolean, + description: + "By default it assumes logo used will be monochrome with alpha channel to be compatible with both light and dark themes. " <> + "If you want a colorful logo you must disable logoMask." + }, + %{ + key: :minimalScopesMode, + label: "Minimal scopes mode", + type: :boolean, + description: + "Limit scope selection to Direct, User default, and Scope of post replying to. " <> + "Also prevents replying to a DM with a public post from PleromaFE." + }, + %{ + key: :nsfwCensorImage, + label: "NSFW Censor Image", + type: :string, + description: + "URL of the image to use for hiding NSFW media attachments in the timeline.", + suggestions: ["/static/img/nsfw.74818f9.png"] + }, + %{ + key: :postContentType, + label: "Post Content Type", + type: {:dropdown, :atom}, + description: "Default post formatting option.", + suggestions: ["text/plain", "text/html", "text/markdown", "text/bbcode"] }, %{ key: :redirectRootNoLogin, @@ -1102,51 +1263,31 @@ "Relative URL which indicates where to redirect when a user is logged in", suggestions: ["/main/friends"] }, - %{ - key: :showInstanceSpecificPanel, - label: "Show instance specific panel", - type: :boolean, - description: "Whenether to show the instance's specific panel" - }, - %{ - key: :scopeOptionsEnabled, - label: "Scope options enabled", - type: :boolean, - description: "Enable setting a notice visibility and subject/CW when posting" - }, - %{ - key: :formattingOptionsEnabled, - label: "Formatting options enabled", - type: :boolean, - description: - "Enable setting a formatting different than plain-text (ie. HTML, Markdown) when posting, relates to `:instance`, `allowed_post_formats`" - }, - %{ - key: :collapseMessageWithSubject, - label: "Collapse message with subject", - type: :boolean, - description: - "When a message has a subject (aka Content Warning), collapse it by default" - }, - %{ - key: :hidePostStats, - label: "Hide post stats", - type: :boolean, - description: "Hide notices statistics (repeats, favorites, ...)" - }, - %{ - key: :hideUserStats, - label: "Hide user stats", - type: :boolean, - description: - "Hide profile statistics (posts, posts per day, followers, followings, ...)" - }, %{ key: :scopeCopy, label: "Scope copy", 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", + type: :boolean, + description: + "Enables panel displaying functionality of the instance on the About page." + }, + %{ + key: :showInstanceSpecificPanel, + label: "Show instance specific panel", + type: :boolean, + description: "Whether to show the instance's custom panel" + }, %{ key: :subjectLineBehavior, label: "Subject line behavior", @@ -1158,38 +1299,10 @@ suggestions: ["email", "masto", "noop"] }, %{ - key: :alwaysShowSubjectInput, - label: "Always show subject input", - type: :boolean, - description: "When disabled, auto-hide the subject field if it's empty" - }, - %{ - key: :logoMask, - label: "Logo mask", - type: :boolean, - description: - "By default it assumes logo used will be monochrome with alpha channel to be compatible with both light and dark themes. " <> - "If you want a colorful logo you must disable logoMask." - }, - %{ - key: :logoMargin, - label: "Logo margin", + key: :theme, type: :string, - description: - "Allows you to adjust vertical margins between logo boundary and navbar borders. " <> - "The idea is that to have logo's image without any extra margins and instead adjust them to your need in layout.", - suggestions: [".1em"] - }, - %{ - key: :stickers, - type: :boolean, - description: "Enables stickers." - }, - %{ - key: :enableEmojiPicker, - label: "Emoji picker", - type: :boolean, - description: "Enables emoji picker." + description: "Which theme to use. Available themes are defined in styles.json", + suggestions: ["pleroma-dark"] } ] }, @@ -1245,6 +1358,12 @@ suggestions: [ :pleroma_fox_tan ] + }, + %{ + key: :default_user_avatar, + type: :string, + description: "URL of the default user avatar.", + suggestions: ["/images/avi.png"] } ] }, @@ -1814,12 +1933,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}, @@ -1990,7 +2103,8 @@ %{ key: :parsers, type: {:list, :module}, - description: "List of Rich Media parsers.", + 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, @@ -2002,7 +2116,8 @@ key: :ttl_setters, label: "TTL setters", type: {:list, :module}, - description: "List of rich media TTL setters.", + description: + "List of rich media TTL setters. Module names are shortened (removed leading `Pleroma.Web.RichMedia.Parser.` part), but on adding custom module you need to use full name.", suggestions: [ Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl ] @@ -2592,18 +2707,6 @@ } ] }, - %{ - group: :http_signatures, - type: :group, - description: "HTTP Signatures settings", - children: [ - %{ - key: :adapter, - type: :module, - suggestions: [Pleroma.Signature] - } - ] - }, %{ group: :pleroma, key: :http, @@ -2676,6 +2779,8 @@ %{ key: :scrub_policy, type: {:list, :module}, + description: + "Module names are shortened (removed leading `Pleroma.HTML.` part), but on adding custom module you need to use full name.", suggestions: [Pleroma.HTML.Transform.MediaProxy, Pleroma.HTML.Scrubber.Default] } ] @@ -3210,5 +3315,19 @@ ] } ] + }, + %{ + group: :pleroma, + key: Pleroma.Web.ApiSpec.CastAndValidate, + type: :group, + children: [ + %{ + key: :strict, + type: :boolean, + description: + "Enables strict input validation (useful in development, not recommended in production)", + suggestions: [false] + } + ] } ] diff --git a/config/dev.exs b/config/dev.exs index 7e1e3b4be..4faaeff5b 100644 --- a/config/dev.exs +++ b/config/dev.exs @@ -52,6 +52,8 @@ hostname: "localhost", pool_size: 10 +config :pleroma, Pleroma.Web.ApiSpec.CastAndValidate, strict: true + if File.exists?("./config/dev.secret.exs") do import_config "dev.secret.exs" else diff --git a/config/test.exs b/config/test.exs index 040e67e4a..e38b9967d 100644 --- a/config/test.exs +++ b/config/test.exs @@ -56,6 +56,19 @@ ignore_hosts: [], ignore_tld: ["local", "localdomain", "lan"] +config :pleroma, :instance, + multi_factor_authentication: [ + totp: [ + # digits 6 or 8 + digits: 6, + period: 30 + ], + backup_codes: [ + number: 2, + length: 6 + ] + ] + config :web_push_encryption, :vapid_details, subject: "mailto:administrator@example.com", public_key: @@ -96,6 +109,8 @@ config :pleroma, Pleroma.Plugs.RemoteIp, enabled: false +config :pleroma, Pleroma.Web.ApiSpec.CastAndValidate, strict: true + if File.exists?("./config/test.secret.exs") do import_config "test.secret.exs" else diff --git a/docs/API/admin_api.md b/docs/API/admin_api.md index 6202c5a1a..639c3224d 100644 --- a/docs/API/admin_api.md +++ b/docs/API/admin_api.md @@ -409,6 +409,7 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret ### Get a password reset token for a given nickname + - Params: none - Response: @@ -427,6 +428,14 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret - `nicknames` - Response: none (code `204`) +## PUT `/api/pleroma/admin/users/disable_mfa` + +### Disable mfa for user's account. + +- Params: + - `nickname` +- Response: User’s nickname + ## `GET /api/pleroma/admin/users/:nickname/credentials` ### Get the user's email, password, display and settings-related fields @@ -502,7 +511,23 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret - `discoverable` - `actor_type` -- Response: none (code `200`) +- Response: + +```json +{"status": "success"} +``` + +```json +{"errors": + {"actor_type": "is invalid"}, + {"email": "has invalid format"}, + ... + } +``` + +```json +{"error": "Unable to update user."} +``` ## `GET /api/pleroma/admin/reports` @@ -755,6 +780,17 @@ 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 +## `GET /api/pleroma/admin/statuses/:id` + +### Show status by id + +- Params: + - `id`: required, status id +- Response: + - On failure: + - 404 Not Found `"Not Found"` + - On success: JSON, Mastodon Status entity + ## `PUT /api/pleroma/admin/statuses/:id` ### Change the scope of an individual reported status diff --git a/docs/API/differences_in_mastoapi_responses.md b/docs/API/differences_in_mastoapi_responses.md index c099eb1a0..434ade9a4 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. @@ -32,12 +28,20 @@ Has these additional fields under the `pleroma` object: - `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. -## 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. @@ -61,6 +65,7 @@ Has these additional fields under the `pleroma` object: - `deactivated`: boolean, true when the user is deactivated - `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. ### Source @@ -215,6 +220,13 @@ 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 + +## Markers + +Has these additional fields under the `pleroma` object: + +- `unread_count`: contains number unread notifications diff --git a/docs/API/pleroma_api.md b/docs/API/pleroma_api.md index b927be026..70d4755b7 100644 --- a/docs/API/pleroma_api.md +++ b/docs/API/pleroma_api.md @@ -70,7 +70,49 @@ Request parameters can be passed via [query strings](https://en.wikipedia.org/wi * Response: JSON. Returns `{"status": "success"}` if the account was successfully disabled, `{"error": "[error message]"}` otherwise * Example response: `{"error": "Invalid password."}` -## `/api/pleroma/admin/`… +## `/api/pleroma/accounts/mfa` +#### Gets current MFA settings +* method: `GET` +* Authentication: required +* OAuth scope: `read:security` +* Response: JSON. Returns `{"enabled": "false", "totp": false }` + +## `/api/pleroma/accounts/mfa/setup/totp` +#### Pre-setup the MFA/TOTP method +* method: `GET` +* Authentication: required +* OAuth scope: `write:security` +* Response: JSON. Returns `{"key": [secret_key], "provisioning_uri": "[qr code uri]" }` when successful, otherwise returns HTTP 422 `{"error": "error_msg"}` + +## `/api/pleroma/accounts/mfa/confirm/totp` +#### Confirms & enables MFA/TOTP support for user account. +* method: `POST` +* Authentication: required +* OAuth scope: `write:security` +* Params: + * `password`: user's password + * `code`: token from TOTP App +* Response: JSON. Returns `{}` if the enable was successful, HTTP 422 `{"error": "[error message]"}` otherwise + + +## `/api/pleroma/accounts/mfa/totp` +#### Disables MFA/TOTP method for user account. +* method: `DELETE` +* Authentication: required +* OAuth scope: `write:security` +* Params: + * `password`: user's password +* Response: JSON. Returns `{}` if the disable was successful, HTTP 422 `{"error": "[error message]"}` otherwise +* Example response: `{"error": "Invalid password."}` + +## `/api/pleroma/accounts/mfa/backup_codes` +#### Generstes backup codes MFA for user account. +* method: `GET` +* Authentication: required +* OAuth scope: `write:security` +* Response: JSON. Returns `{"codes": codes}`when successful, otherwise HTTP 422 `{"error": "[error message]"}` + +## `/api/pleroma/admin/` See [Admin-API](admin_api.md) ## `/api/v1/pleroma/notifications/read` @@ -223,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: @@ -316,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 @@ -384,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. @@ -494,7 +536,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/user.md b/docs/administration/CLI_tasks/user.md index f535dad82..afeb8d52f 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 ``` @@ -177,4 +177,3 @@ mix pleroma.user untag ```sh tab="From Source" mix pleroma.user toggle_confirmed ``` - diff --git a/docs/configuration/cheatsheet.md b/docs/configuration/cheatsheet.md index 8b8988fa7..456762151 100644 --- a/docs/configuration/cheatsheet.md +++ b/docs/configuration/cheatsheet.md @@ -8,6 +8,10 @@ For from source installations Pleroma configuration works by first importing the To add configuration to your config file, you can copy it from the base config. The latest version of it can be viewed [here](https://git.pleroma.social/pleroma/pleroma/blob/develop/config/config.exs). You can also use this file if you don't know how an option is supposed to be formatted. +## :chat + +* `enabled` - Enables the backend chat. Defaults to `true`. + ## :instance * `name`: The instance’s name. * `email`: Email used to reach an Administrator/Moderator of the instance. @@ -146,6 +150,11 @@ 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) @@ -250,6 +259,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 bash 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. default is empty +* `options`: request options. default is empty + +Example: +```elixir +config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Http, + method: :purge, + headers: [], + options: [] +``` ## Link previews @@ -460,6 +503,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`. @@ -620,24 +664,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. @@ -908,12 +934,33 @@ config :auto_linker, * `runtime_dir`: A path to custom Elixir modules (such as MRF policies). - ## :configurable_from_database Boolean, enables/disables in-database configuration. Read [Transfering the config to/from the database](../administration/CLI_tasks/config.md) for more information. +## :database_config_whitelist +List of valid configuration sections which are allowed to be configured from the +database. Settings stored in the database before the whitelist is configured are +still applied, so it is suggested to only use the whitelist on instances that +have not migrated the config to the database. + +Example: +```elixir +config :pleroma, :database_config_whitelist, [ + {:pleroma, :instance}, + {:pleroma, Pleroma.Web.Metadata}, + {:auto_linker} +] +``` + +### Multi-factor authentication - :two_factor_authentication +* `totp` - a list containing TOTP configuration + - `digits` - Determines the length of a one-time pass-code in characters. Defaults to 6 characters. + - `period` - a period for which the TOTP code will be valid in seconds. Defaults to 30 seconds. +* `backup_codes` - a list containing backup codes configuration + - `number` - number of backup codes to generate. + - `length` - backup code length. Defaults to 16 characters. ## Restrict entities access for unauthenticated users @@ -929,4 +976,9 @@ Restrict access for unauthenticated users to timelines (public and federate), us * `remote` * `activities` - statuses * `local` - * `remote` \ No newline at end of file + * `remote` + + +## Pleroma.Web.ApiSpec.CastAndValidate + +* `:strict` a boolean, enables strict input validation (useful in development, not recommended in production). Defaults to `false`. 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..7e91fe7d9 --- /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, :instance, + rewrite_policy: [Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy] +``` diff --git a/docs/installation/debian_based_en.md b/docs/installation/debian_based_en.md index 62d8733f7..2c20d521a 100644 --- a/docs/installation/debian_based_en.md +++ b/docs/installation/debian_based_en.md @@ -38,8 +38,8 @@ sudo apt install git build-essential postgresql postgresql-contrib * Download and add the Erlang repository: ```shell -wget -P /tmp/ https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb -sudo dpkg -i /tmp/erlang-solutions_1.0_all.deb +wget -P /tmp/ https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb +sudo dpkg -i /tmp/erlang-solutions_2.0_all.deb ``` * Install Elixir and Erlang: diff --git a/docs/installation/debian_based_jp.md b/docs/installation/debian_based_jp.md index a3c4621d8..1e5a9be91 100644 --- a/docs/installation/debian_based_jp.md +++ b/docs/installation/debian_based_jp.md @@ -40,8 +40,8 @@ sudo apt install git build-essential postgresql postgresql-contrib * Erlangのリポジトリをダウンロードおよびインストールします。 ``` -wget -P /tmp/ https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb -sudo dpkg -i /tmp/erlang-solutions_1.0_all.deb +wget -P /tmp/ https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb +sudo dpkg -i /tmp/erlang-solutions_2.0_all.deb ``` * ElixirとErlangをインストールします、 diff --git a/docs/installation/otp_en.md b/docs/installation/otp_en.md index fb99af699..86135cd20 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 diff --git a/installation/init.d/pleroma b/installation/init.d/pleroma index ed50bb551..384536f7e 100755 --- a/installation/init.d/pleroma +++ b/installation/init.d/pleroma @@ -1,21 +1,45 @@ #!/sbin/openrc-run - -# Requires OpenRC >= 0.35 -directory=/opt/pleroma - -command=/usr/bin/mix -command_args="phx.server" +supervisor=supervise-daemon command_user=pleroma:pleroma command_background=1 - -export PORT=4000 -export MIX_ENV=prod - # Ask process to terminate within 30 seconds, otherwise kill it retry="SIGTERM/30/SIGKILL/5" - pidfile="/var/run/pleroma.pid" +directory=/opt/pleroma +healthcheck_delay=60 +healthcheck_timer=30 + +: ${pleroma_port:-4000} + +# Needs OpenRC >= 0.42 +#respawn_max=0 +#respawn_delay=5 + +# put pleroma_console=YES in /etc/conf.d/pleroma if you want to be able to +# connect to pleroma via an elixir console +if yesno "${pleroma_console}"; then + command=elixir + command_args="--name pleroma@127.0.0.1 --erl '-kernel inet_dist_listen_min 9001 inet_dist_listen_max 9001 inet_dist_use_interface {127,0,0,1}' -S mix phx.server" + + start_post() { + einfo "You can get a console by using this command as pleroma's user:" + einfo "iex --name console@127.0.0.1 --remsh pleroma@127.0.0.1" + } +else + command=/usr/bin/mix + command_args="phx.server" +fi + +export MIX_ENV=prod depend() { - need nginx postgresql + need nginx postgresql +} + +healthcheck() { + # put pleroma_health=YES in /etc/conf.d/pleroma if you want healthchecking + # and make sure you have curl installed + yesno "$pleroma_health" || return 0 + + curl -q "localhost:${pleroma_port}/api/pleroma/healthcheck" } diff --git a/installation/nginx-cache-purge.sh.example b/installation/nginx-cache-purge.sh.example new file mode 100755 index 000000000..b2915321c --- /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 $1 diff --git a/installation/pleroma-apache.conf b/installation/pleroma-apache.conf index b5640ac3d..0d627f2d7 100644 --- a/installation/pleroma-apache.conf +++ b/installation/pleroma-apache.conf @@ -32,9 +32,8 @@ CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on - SSLCertificateFile /etc/letsencrypt/live/${servername}/cert.pem + SSLCertificateFile /etc/letsencrypt/live/${servername}/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/${servername}/privkey.pem - SSLCertificateChainFile /etc/letsencrypt/live/${servername}/fullchain.pem # Mozilla modern configuration, tweak to your needs SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 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/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/digest.ex b/lib/mix/tasks/pleroma/digest.ex index 7d09e70c5..3595f912d 100644 --- a/lib/mix/tasks/pleroma/digest.ex +++ b/lib/mix/tasks/pleroma/digest.ex @@ -1,5 +1,6 @@ defmodule Mix.Tasks.Pleroma.Digest do use Mix.Task + import Mix.Pleroma @shortdoc "Manages digest emails" @moduledoc File.read!("docs/administration/CLI_tasks/digest.md") @@ -22,12 +23,10 @@ def run(["test", nickname | opts]) do with %Swoosh.Email{} = email <- Pleroma.Emails.UserEmail.digest_email(patched_user) do {:ok, _} = Pleroma.Emails.Mailer.deliver(email) - Mix.shell().info("Digest email have been sent to #{nickname} (#{user.email})") + shell_info("Digest email have been sent to #{nickname} (#{user.email})") else _ -> - Mix.shell().info( - "Cound't find any mentions for #{nickname} since #{last_digest_emailed_at}" - ) + shell_info("Cound't find any mentions for #{nickname} since #{last_digest_emailed_at}") end end end diff --git a/lib/mix/tasks/pleroma/emoji.ex b/lib/mix/tasks/pleroma/emoji.ex index cdffa88b2..29a5fa99c 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,20 @@ 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 - ) + 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/user.ex b/lib/mix/tasks/pleroma/user.ex index 40dd9bdc0..3635c02bc 100644 --- a/lib/mix/tasks/pleroma/user.ex +++ b/lib/mix/tasks/pleroma/user.ex @@ -8,6 +8,8 @@ defmodule Mix.Tasks.Pleroma.User do alias Ecto.Changeset alias Pleroma.User alias Pleroma.UserInviteToken + alias Pleroma.Web.ActivityPub.Builder + alias Pleroma.Web.ActivityPub.Pipeline @shortdoc "Manages Pleroma users" @moduledoc File.read!("docs/administration/CLI_tasks/user.md") @@ -96,8 +98,9 @@ def run(["new", nickname, email | rest]) do def run(["rm", nickname]) do start_pleroma() - with %User{local: true} = user <- User.get_cached_by_nickname(nickname) do - User.perform(:delete, user) + with %User{local: true} = user <- User.get_cached_by_nickname(nickname), + {:ok, delete_data, _} <- Builder.delete(user, user.ap_id), + {:ok, _delete, _} <- Pipeline.common_pipeline(delete_data, local: true) do shell_info("User #{nickname} deleted.") else _ -> shell_error("No local user #{nickname}") @@ -141,28 +144,18 @@ def run(["reset_password", nickname]) do end end - def run(["unsubscribe", nickname]) do + 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 _ -> @@ -170,7 +163,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}"}) @@ -178,7 +171,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/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 308d8cffa..9d3d92b38 100644 --- a/lib/pleroma/application.ex +++ b/lib/pleroma/application.ex @@ -56,7 +56,7 @@ def start(_type, _args) do if (major == 22 and minor < 2) or major < 22 do raise " !!!OTP VERSION WARNING!!! - You are using gun adapter with OTP version #{version}, which doesn't support correct handling of unordered certificates chains. + You are using gun adapter with OTP version #{version}, which doesn't support correct handling of unordered certificates chains. Please update your Erlang/OTP to at least 22.2. " end else @@ -173,7 +173,14 @@ defp chat_enabled?, do: Config.get([:chat, :enabled]) defp streamer_child(env) when env in [:test, :benchmark], do: [] defp streamer_child(_) do - [Pleroma.Web.Streamer.supervisor()] + [ + {Registry, + [ + name: Pleroma.Web.Streamer.registry(), + keys: :duplicate, + partitions: System.schedulers_online() + ]} + ] end defp chat_child(_env, true) do diff --git a/lib/pleroma/bbs/authenticator.ex b/lib/pleroma/bbs/authenticator.ex index e5b37f33e..815de7002 100644 --- a/lib/pleroma/bbs/authenticator.ex +++ b/lib/pleroma/bbs/authenticator.ex @@ -4,7 +4,7 @@ defmodule Pleroma.BBS.Authenticator do use Sshd.PasswordAuthenticator - alias Comeonin.Pbkdf2 + alias Pleroma.Plugs.AuthenticationPlug alias Pleroma.User def authenticate(username, password) do @@ -12,7 +12,7 @@ def authenticate(username, password) do password = to_string(password) with %User{} = user <- User.get_by_nickname(username) do - Pbkdf2.checkpw(password, user.password_hash) + AuthenticationPlug.checkpw(password, user.password_hash) else _e -> false end diff --git a/lib/pleroma/bbs/handler.ex b/lib/pleroma/bbs/handler.ex index c7bc8ef6c..12d64c2fe 100644 --- a/lib/pleroma/bbs/handler.ex +++ b/lib/pleroma/bbs/handler.ex @@ -66,7 +66,7 @@ def handle_command(%{user: user} = state, "r " <> text) do with %Activity{} <- Activity.get_by_id(activity_id), {:ok, _activity} <- - CommonAPI.post(user, %{"status" => rest, "in_reply_to_status_id" => activity_id}) do + CommonAPI.post(user, %{status: rest, in_reply_to_status_id: activity_id}) do IO.puts("Replied!") else _e -> IO.puts("Could not reply...") @@ -78,7 +78,7 @@ def handle_command(%{user: user} = state, "r " <> text) do def handle_command(%{user: user} = state, "p " <> text) do text = String.trim(text) - with {:ok, _activity} <- CommonAPI.post(user, %{"status" => text}) do + with {:ok, _activity} <- CommonAPI.post(user, %{status: text}) do IO.puts("Posted!") else _e -> IO.puts("Could not post...") diff --git a/lib/pleroma/config/config_db.ex b/lib/pleroma/config/config_db.ex index 4097ee5b7..2b43d4c36 100644 --- a/lib/pleroma/config/config_db.ex +++ b/lib/pleroma/config/config_db.ex @@ -278,6 +278,8 @@ defp do_convert({:proxy_url, {type, host, port}}) do } end + defp do_convert({:partial_chain, entity}), do: %{"tuple" => [":partial_chain", inspect(entity)]} + defp do_convert(entity) when is_tuple(entity) do value = entity @@ -321,6 +323,15 @@ defp do_transform(%{"tuple" => [":proxy_url", %{"tuple" => [type, host, port]}]} {:proxy_url, {do_transform_string(type), parse_host(host), port}} end + defp do_transform(%{"tuple" => [":partial_chain", entity]}) do + {partial_chain, []} = + entity + |> String.replace(~r/[^\w|^{:,[|^,|^[|^\]^}|^\/|^\.|^"]^\s/, "") + |> Code.eval_string() + + {:partial_chain, partial_chain} + end + defp do_transform(%{"tuple" => entity}) do Enum.reduce(entity, {}, fn val, acc -> Tuple.append(acc, do_transform(val)) end) end diff --git a/lib/pleroma/constants.ex b/lib/pleroma/constants.ex index 3a9eec5ea..06174f624 100644 --- a/lib/pleroma/constants.ex +++ b/lib/pleroma/constants.ex @@ -17,7 +17,8 @@ defmodule Pleroma.Constants do "announcement_count", "emoji", "context_id", - "deleted_activity_id" + "deleted_activity_id", + "pleroma_internal" ] ) 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 215265fc9..51bb1bda9 100644 --- a/lib/pleroma/conversation/participation.ex +++ b/lib/pleroma/conversation/participation.ex @@ -128,7 +128,7 @@ def for_user(user, params \\ %{}) do |> Pleroma.Pagination.fetch_paginated(params) end - def restrict_recipients(query, user, %{"recipients" => user_ids}) do + def restrict_recipients(query, user, %{recipients: user_ids}) do user_binary_ids = [user.id | user_ids] |> Enum.uniq() @@ -172,7 +172,7 @@ def for_user_with_last_activity_id(user, params \\ %{}) do | last_activity_id: activity_id } end) - |> Enum.filter(& &1.last_activity_id) + |> Enum.reject(&is_nil(&1.last_activity_id)) end def get(_, _ \\ []) diff --git a/lib/pleroma/docs/json.ex b/lib/pleroma/docs/json.ex index 74f8b2615..d1cf1f487 100644 --- a/lib/pleroma/docs/json.ex +++ b/lib/pleroma/docs/json.ex @@ -18,7 +18,6 @@ def compile do with config <- Pleroma.Config.Loader.read("config/description.exs") do config[:pleroma][:config_description] |> Pleroma.Docs.Generator.convert_to_strings() - |> Jason.encode!() end 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..14a5185be 100644 --- a/lib/pleroma/emoji/pack.ex +++ b/lib/pleroma/emoji/pack.ex @@ -16,162 +16,78 @@ 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") - } + 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} - - @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} + @spec show(String.t()) :: {:ok, t()} | {:error, atom()} + def show(name) do + with :ok <- validate_not_empty([name]), + {:ok, pack} <- load_pack(name) do + {:ok, validate_pack(pack)} end end - def show(_), do: {:error, :empty_values} - @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 +100,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 +109,117 @@ 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() :: {:ok, map()} + def list_local do + with {:ok, results} <- list_packs_dir() do + packs = + results + |> Enum.map(fn name -> + case load_pack(name) do + {:ok, pack} -> pack + _ -> nil + end + end) + |> Enum.reject(&is_nil/1) + |> Map.new(fn pack -> {pack.name, validate_pack(pack)} end) + + {:ok, 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 | {: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) + + {:ok, pack} + 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 +228,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 +243,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 +254,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 +274,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 @@ -315,26 +300,6 @@ defp downloadable?(pack) do 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 +321,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, 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/filter.ex b/lib/pleroma/filter.ex index 7cb49360f..4d61b3650 100644 --- a/lib/pleroma/filter.ex +++ b/lib/pleroma/filter.ex @@ -89,11 +89,10 @@ def delete(%Pleroma.Filter{id: filter_key} = filter) when is_nil(filter_key) do |> Repo.delete() end - def update(%Pleroma.Filter{} = filter) do - destination = Map.from_struct(filter) - - Pleroma.Filter.get(filter.filter_id, %{id: filter.user_id}) - |> cast(destination, [:phrase, :context, :hide, :expires_at, :whole_word]) + def update(%Pleroma.Filter{} = filter, params) do + filter + |> cast(params, [:phrase, :context, :hide, :expires_at, :whole_word]) + |> validate_required([:phrase, :context]) |> Repo.update() end end diff --git a/lib/pleroma/healthcheck.ex b/lib/pleroma/healthcheck.ex index 8f7f43ec2..92ce83cb7 100644 --- a/lib/pleroma/healthcheck.ex +++ b/lib/pleroma/healthcheck.ex @@ -29,7 +29,7 @@ defmodule Pleroma.Healthcheck do @spec system_info() :: t() def system_info do %Healthcheck{ - memory_used: Float.round(:erlang.memory(:total) / 1024 / 1024, 2) + memory_used: Float.round(:recon_alloc.memory(:allocated) / 1024 / 1024, 2) } |> assign_db_info() |> assign_job_queue_stats() diff --git a/lib/pleroma/helpers/uri_helper.ex b/lib/pleroma/helpers/uri_helper.ex index 256252ddb..69d8c8fe0 100644 --- a/lib/pleroma/helpers/uri_helper.ex +++ b/lib/pleroma/helpers/uri_helper.ex @@ -24,4 +24,7 @@ def append_param_if_present(%{} = params, param_name, param_value) do 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/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/marker.ex b/lib/pleroma/marker.ex index 443927392..4d82860f5 100644 --- a/lib/pleroma/marker.ex +++ b/lib/pleroma/marker.ex @@ -9,24 +9,34 @@ defmodule Pleroma.Marker do import Ecto.Query alias Ecto.Multi + alias Pleroma.Notification alias Pleroma.Repo alias Pleroma.User + alias __MODULE__ @timelines ["notifications"] + @type t :: %__MODULE__{} schema "markers" do field(:last_read_id, :string, default: "") field(:timeline, :string, default: "") field(:lock_version, :integer, default: 0) + field(:unread_count, :integer, default: 0, virtual: true) belongs_to(:user, User, type: FlakeId.Ecto.CompatType) timestamps() end + @doc "Gets markers by user and timeline." + @spec get_markers(User.t(), list(String)) :: list(t()) def get_markers(user, timelines \\ []) do - Repo.all(get_query(user, timelines)) + user + |> get_query(timelines) + |> unread_count_query() + |> Repo.all() end + @spec upsert(User.t(), map()) :: {:ok | :error, any()} def upsert(%User{} = user, attrs) do attrs |> Map.take(@timelines) @@ -45,6 +55,27 @@ def upsert(%User{} = user, attrs) do |> Repo.transaction() end + @spec multi_set_last_read_id(Multi.t(), User.t(), String.t()) :: Multi.t() + def multi_set_last_read_id(multi, %User{} = user, "notifications") do + multi + |> Multi.run(:counters, fn _repo, _changes -> + {:ok, %{last_read_id: Repo.one(Notification.last_read_query(user))}} + end) + |> Multi.insert( + :marker, + fn %{counters: attrs} -> + %Marker{timeline: "notifications", user_id: user.id} + |> struct(attrs) + |> Ecto.Changeset.change() + end, + returning: true, + on_conflict: {:replace, [:last_read_id]}, + conflict_target: [:user_id, :timeline] + ) + end + + def multi_set_last_read_id(multi, _, _), do: multi + defp get_marker(user, timeline) do case Repo.find_resource(get_query(user, timeline)) do {:ok, marker} -> %__MODULE__{marker | user: user} @@ -71,4 +102,16 @@ defp get_query(user, timelines) do |> by_user_id(user.id) |> by_timeline(timelines) end + + defp unread_count_query(query) do + from( + q in query, + left_join: n in "notifications", + on: n.user_id == q.user_id and n.seen == false, + group_by: [:id], + select_merge: %{ + unread_count: fragment("count(?)", n.id) + } + ) + end end diff --git a/lib/pleroma/mfa.ex b/lib/pleroma/mfa.ex new file mode 100644 index 000000000..01b743f4f --- /dev/null +++ b/lib/pleroma/mfa.ex @@ -0,0 +1,155 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.MFA do + @moduledoc """ + The MFA context. + """ + + alias Pleroma.User + + alias Pleroma.MFA.BackupCodes + alias Pleroma.MFA.Changeset + alias Pleroma.MFA.Settings + alias Pleroma.MFA.TOTP + + @doc """ + Returns MFA methods the user has enabled. + + ## Examples + + iex> Pleroma.MFA.supported_method(User) + "totp, u2f" + """ + @spec supported_methods(User.t()) :: String.t() + def supported_methods(user) do + settings = fetch_settings(user) + + Settings.mfa_methods() + |> Enum.reduce([], fn m, acc -> + if method_enabled?(m, settings) do + acc ++ [m] + else + acc + end + end) + |> Enum.join(",") + end + + @doc "Checks that user enabled MFA" + def require?(user) do + fetch_settings(user).enabled + end + + @doc """ + Display MFA settings of user + """ + def mfa_settings(user) do + settings = fetch_settings(user) + + Settings.mfa_methods() + |> Enum.map(fn m -> [m, method_enabled?(m, settings)] end) + |> Enum.into(%{enabled: settings.enabled}, fn [a, b] -> {a, b} end) + end + + @doc false + def fetch_settings(%User{} = user) do + user.multi_factor_authentication_settings || %Settings{} + end + + @doc "clears backup codes" + def invalidate_backup_code(%User{} = user, hash_code) do + %{backup_codes: codes} = fetch_settings(user) + + user + |> Changeset.cast_backup_codes(codes -- [hash_code]) + |> User.update_and_set_cache() + end + + @doc "generates backup codes" + @spec generate_backup_codes(User.t()) :: {:ok, list(binary)} | {:error, String.t()} + def generate_backup_codes(%User{} = user) do + with codes <- BackupCodes.generate(), + hashed_codes <- Enum.map(codes, &Pbkdf2.hash_pwd_salt/1), + changeset <- Changeset.cast_backup_codes(user, hashed_codes), + {:ok, _} <- User.update_and_set_cache(changeset) do + {:ok, codes} + else + {:error, msg} -> + %{error: msg} + end + end + + @doc """ + Generates secret key and set delivery_type to 'app' for TOTP method. + """ + @spec setup_totp(User.t()) :: {:ok, User.t()} | {:error, Ecto.Changeset.t()} + def setup_totp(user) do + user + |> Changeset.setup_totp(%{secret: TOTP.generate_secret(), delivery_type: "app"}) + |> User.update_and_set_cache() + end + + @doc """ + Confirms the TOTP method for user. + + `attrs`: + `password` - current user password + `code` - TOTP token + """ + @spec confirm_totp(User.t(), map()) :: {:ok, User.t()} | {:error, Ecto.Changeset.t() | atom()} + def confirm_totp(%User{} = user, attrs) do + with settings <- user.multi_factor_authentication_settings.totp, + {:ok, :pass} <- TOTP.validate_token(settings.secret, attrs["code"]) do + user + |> Changeset.confirm_totp() + |> User.update_and_set_cache() + end + end + + @doc """ + Disables the TOTP method for user. + + `attrs`: + `password` - current user password + """ + @spec disable_totp(User.t()) :: {:ok, User.t()} | {:error, Ecto.Changeset.t()} + def disable_totp(%User{} = user) do + user + |> Changeset.disable_totp() + |> Changeset.disable() + |> User.update_and_set_cache() + end + + @doc """ + Force disables all MFA methods for user. + """ + @spec disable(User.t()) :: {:ok, User.t()} | {:error, Ecto.Changeset.t()} + def disable(%User{} = user) do + user + |> Changeset.disable_totp() + |> Changeset.disable(true) + |> User.update_and_set_cache() + end + + @doc """ + Checks if the user has MFA method enabled. + """ + def method_enabled?(method, settings) do + with {:ok, %{confirmed: true} = _} <- Map.fetch(settings, method) do + true + else + _ -> false + end + end + + @doc """ + Checks if the user has enabled at least one MFA method. + """ + def enabled?(settings) do + Settings.mfa_methods() + |> Enum.map(fn m -> method_enabled?(m, settings) end) + |> Enum.any?() + end +end diff --git a/lib/pleroma/mfa/backup_codes.ex b/lib/pleroma/mfa/backup_codes.ex new file mode 100644 index 000000000..9875310ff --- /dev/null +++ b/lib/pleroma/mfa/backup_codes.ex @@ -0,0 +1,31 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.MFA.BackupCodes do + @moduledoc """ + This module contains functions for generating backup codes. + """ + alias Pleroma.Config + + @config_ns [:instance, :multi_factor_authentication, :backup_codes] + + @doc """ + Generates backup codes. + """ + @spec generate(Keyword.t()) :: list(String.t()) + def generate(opts \\ []) do + number_of_codes = Keyword.get(opts, :number_of_codes, default_backup_codes_number()) + code_length = Keyword.get(opts, :length, default_backup_codes_code_length()) + + Enum.map(1..number_of_codes, fn _ -> + :crypto.strong_rand_bytes(div(code_length, 2)) + |> Base.encode16(case: :lower) + end) + end + + defp default_backup_codes_number, do: Config.get(@config_ns ++ [:number], 5) + + defp default_backup_codes_code_length, + do: Config.get(@config_ns ++ [:length], 16) +end diff --git a/lib/pleroma/mfa/changeset.ex b/lib/pleroma/mfa/changeset.ex new file mode 100644 index 000000000..77c4fa202 --- /dev/null +++ b/lib/pleroma/mfa/changeset.ex @@ -0,0 +1,64 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.MFA.Changeset do + alias Pleroma.MFA + alias Pleroma.MFA.Settings + alias Pleroma.User + + def disable(%Ecto.Changeset{} = changeset, force \\ false) do + settings = + changeset + |> Ecto.Changeset.apply_changes() + |> MFA.fetch_settings() + + if force || not MFA.enabled?(settings) do + put_change(changeset, %Settings{settings | enabled: false}) + else + changeset + end + end + + def disable_totp(%User{multi_factor_authentication_settings: settings} = user) do + user + |> put_change(%Settings{settings | totp: %Settings.TOTP{}}) + end + + def confirm_totp(%User{multi_factor_authentication_settings: settings} = user) do + totp_settings = %Settings.TOTP{settings.totp | confirmed: true} + + user + |> put_change(%Settings{settings | totp: totp_settings, enabled: true}) + end + + def setup_totp(%User{} = user, attrs) do + mfa_settings = MFA.fetch_settings(user) + + totp_settings = + %Settings.TOTP{} + |> Ecto.Changeset.cast(attrs, [:secret, :delivery_type]) + + user + |> put_change(%Settings{mfa_settings | totp: Ecto.Changeset.apply_changes(totp_settings)}) + end + + def cast_backup_codes(%User{} = user, codes) do + user + |> put_change(%Settings{ + user.multi_factor_authentication_settings + | backup_codes: codes + }) + end + + defp put_change(%User{} = user, settings) do + user + |> Ecto.Changeset.change() + |> put_change(settings) + end + + defp put_change(%Ecto.Changeset{} = changeset, settings) do + changeset + |> Ecto.Changeset.put_change(:multi_factor_authentication_settings, settings) + end +end diff --git a/lib/pleroma/mfa/settings.ex b/lib/pleroma/mfa/settings.ex new file mode 100644 index 000000000..de6e2228f --- /dev/null +++ b/lib/pleroma/mfa/settings.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.MFA.Settings do + use Ecto.Schema + + @primary_key false + + @mfa_methods [:totp] + embedded_schema do + field(:enabled, :boolean, default: false) + field(:backup_codes, {:array, :string}, default: []) + + embeds_one :totp, TOTP, on_replace: :delete, primary_key: false do + field(:secret, :string) + # app | sms + field(:delivery_type, :string, default: "app") + field(:confirmed, :boolean, default: false) + end + end + + def mfa_methods, do: @mfa_methods +end diff --git a/lib/pleroma/mfa/token.ex b/lib/pleroma/mfa/token.ex new file mode 100644 index 000000000..0b2449971 --- /dev/null +++ b/lib/pleroma/mfa/token.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.MFA.Token do + use Ecto.Schema + import Ecto.Query + import Ecto.Changeset + + alias Pleroma.Repo + alias Pleroma.User + alias Pleroma.Web.OAuth.Authorization + alias Pleroma.Web.OAuth.Token, as: OAuthToken + + @expires 300 + + schema "mfa_tokens" do + field(:token, :string) + field(:valid_until, :naive_datetime_usec) + + belongs_to(:user, User, type: FlakeId.Ecto.CompatType) + belongs_to(:authorization, Authorization) + + timestamps() + end + + def get_by_token(token) do + from( + t in __MODULE__, + where: t.token == ^token, + preload: [:user, :authorization] + ) + |> Repo.find_resource() + end + + def validate(token) do + with {:fetch_token, {:ok, token}} <- {:fetch_token, get_by_token(token)}, + {:expired, false} <- {:expired, is_expired?(token)} do + {:ok, token} + else + {:expired, _} -> {:error, :expired_token} + {:fetch_token, _} -> {:error, :not_found} + error -> {:error, error} + end + end + + def create_token(%User{} = user) do + %__MODULE__{} + |> change + |> assign_user(user) + |> put_token + |> put_valid_until + |> Repo.insert() + end + + def create_token(user, authorization) do + %__MODULE__{} + |> change + |> assign_user(user) + |> assign_authorization(authorization) + |> put_token + |> put_valid_until + |> Repo.insert() + end + + defp assign_user(changeset, user) do + changeset + |> put_assoc(:user, user) + |> validate_required([:user]) + end + + defp assign_authorization(changeset, authorization) do + changeset + |> put_assoc(:authorization, authorization) + |> validate_required([:authorization]) + end + + defp put_token(changeset) do + changeset + |> change(%{token: OAuthToken.Utils.generate_token()}) + |> validate_required([:token]) + |> unique_constraint(:token) + end + + defp put_valid_until(changeset) do + expires_in = NaiveDateTime.add(NaiveDateTime.utc_now(), @expires) + + changeset + |> change(%{valid_until: expires_in}) + |> validate_required([:valid_until]) + end + + def is_expired?(%__MODULE__{valid_until: valid_until}) do + NaiveDateTime.diff(NaiveDateTime.utc_now(), valid_until) > 0 + end + + def is_expired?(_), do: false + + def delete_expired_tokens do + from( + q in __MODULE__, + where: fragment("?", q.valid_until) < ^Timex.now() + ) + |> Repo.delete_all() + end +end diff --git a/lib/pleroma/mfa/totp.ex b/lib/pleroma/mfa/totp.ex new file mode 100644 index 000000000..d2ea2b3aa --- /dev/null +++ b/lib/pleroma/mfa/totp.ex @@ -0,0 +1,86 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.MFA.TOTP do + @moduledoc """ + This module represents functions to create secrets for + TOTP Application as well as validate them with a time based token. + """ + alias Pleroma.Config + + @config_ns [:instance, :multi_factor_authentication, :totp] + + @doc """ + https://github.com/google/google-authenticator/wiki/Key-Uri-Format + """ + def provisioning_uri(secret, label, opts \\ []) do + query = + %{ + secret: secret, + issuer: Keyword.get(opts, :issuer, default_issuer()), + digits: Keyword.get(opts, :digits, default_digits()), + period: Keyword.get(opts, :period, default_period()) + } + |> Enum.filter(fn {_, v} -> not is_nil(v) end) + |> Enum.into(%{}) + |> URI.encode_query() + + %URI{scheme: "otpauth", host: "totp", path: "/" <> label, query: query} + |> URI.to_string() + end + + defp default_period, do: Config.get(@config_ns ++ [:period]) + defp default_digits, do: Config.get(@config_ns ++ [:digits]) + + defp default_issuer, + do: Config.get(@config_ns ++ [:issuer], Config.get([:instance, :name])) + + @doc "Creates a random Base 32 encoded string" + def generate_secret do + Base.encode32(:crypto.strong_rand_bytes(10)) + end + + @doc "Generates a valid token based on a secret" + def generate_token(secret) do + :pot.totp(secret) + end + + @doc """ + Validates a given token based on a secret. + + optional parameters: + `token_length` default `6` + `interval_length` default `30` + `window` default 0 + + Returns {:ok, :pass} if the token is valid and + {:error, :invalid_token} if it is not. + """ + @spec validate_token(String.t(), String.t()) :: + {:ok, :pass} | {:error, :invalid_token | :invalid_secret_and_token} + def validate_token(secret, token) + when is_binary(secret) and is_binary(token) do + opts = [ + token_length: default_digits(), + interval_length: default_period() + ] + + validate_token(secret, token, opts) + end + + def validate_token(_, _), do: {:error, :invalid_secret_and_token} + + @doc "See `validate_token/2`" + @spec validate_token(String.t(), String.t(), Keyword.t()) :: + {:ok, :pass} | {:error, :invalid_token | :invalid_secret_and_token} + def validate_token(secret, token, options) + when is_binary(secret) and is_binary(token) do + case :pot.valid_totp(token, secret, options) do + true -> {:ok, :pass} + false -> {:error, :invalid_token} + end + end + + def validate_token(_, _, _), do: {:error, :invalid_secret_and_token} +end diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex index 98289af08..7eca55ac9 100644 --- a/lib/pleroma/notification.ex +++ b/lib/pleroma/notification.ex @@ -5,8 +5,10 @@ defmodule Pleroma.Notification do use Ecto.Schema + alias Ecto.Multi alias Pleroma.Activity alias Pleroma.FollowingRelationship + alias Pleroma.Marker alias Pleroma.Notification alias Pleroma.Object alias Pleroma.Pagination @@ -34,11 +36,30 @@ defmodule Pleroma.Notification do timestamps() end + @spec unread_notifications_count(User.t()) :: integer() + def unread_notifications_count(%User{id: user_id}) do + from(q in __MODULE__, + where: q.user_id == ^user_id and q.seen == false + ) + |> Repo.aggregate(:count, :id) + end + def changeset(%Notification{} = notification, attrs) do notification |> cast(attrs, [:seen]) end + @spec last_read_query(User.t()) :: Ecto.Queryable.t() + def last_read_query(user) do + from(q in Pleroma.Notification, + where: q.user_id == ^user.id, + where: q.seen == true, + select: type(q.id, :string), + limit: 1, + order_by: [desc: :id] + ) + end + defp for_user_query_ap_id_opts(user, opts) do ap_id_relationships = [:block] ++ @@ -71,8 +92,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 ) ) @@ -185,46 +207,41 @@ def for_user_since(user, date) do |> Repo.all() end - def set_read_up_to(%{id: user_id} = _user, id) do + def set_read_up_to(%{id: user_id} = user, id) do query = from( n in Notification, where: n.user_id == ^user_id, where: n.id <= ^id, where: n.seen == false, - update: [ - set: [ - seen: true, - updated_at: ^NaiveDateTime.utc_now() - ] - ], # Ideally we would preload object and activities here # but Ecto does not support preloads in update_all select: n.id ) - {_, notification_ids} = Repo.update_all(query, []) + {:ok, %{ids: {_, notification_ids}}} = + Multi.new() + |> Multi.update_all(:ids, query, set: [seen: true, updated_at: NaiveDateTime.utc_now()]) + |> 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 + @spec read_one(User.t(), String.t()) :: + {:ok, Notification.t()} | {:error, Ecto.Changeset.t()} | nil def read_one(%User{} = user, notification_id) do with {:ok, %Notification{} = notification} <- get(user, notification_id) do - notification - |> changeset(%{seen: true}) - |> Repo.update() + Multi.new() + |> Multi.update(:update, changeset(notification, %{seen: true})) + |> Marker.multi_set_last_read_id(user, "notifications") + |> Repo.transaction() + |> case do + {:ok, %{update: notification}} -> {:ok, notification} + {:error, :update, changeset, _} -> {:error, changeset} + end end end @@ -316,8 +333,11 @@ defp do_create_notifications(%Activity{} = activity) do # TODO move to sql, too. def create_notification(%Activity{} = activity, %User{} = user, do_send \\ true) do unless skip?(activity, user) do - notification = %Notification{user_id: user.id, activity: activity} - {:ok, notification} = Repo.insert(notification) + {:ok, %{notification: notification}} = + Multi.new() + |> Multi.insert(:notification, %Notification{user_id: user.id, activity: activity}) + |> Marker.multi_set_last_read_id(user, "notifications") + |> Repo.transaction() if do_send do Streamer.stream(["user", "user:notification"], notification) @@ -339,15 +359,10 @@ def get_notified_from_activity(activity, local_only \\ true) def get_notified_from_activity(%Activity{data: %{"type" => type}} = activity, local_only) when type in ["Create", "Like", "Announce", "Follow", "Move", "EmojiReact"] do - potential_receiver_ap_ids = - [] - |> Utils.maybe_notify_to_recipients(activity) - |> Utils.maybe_notify_mentioned_recipients(activity) - |> Utils.maybe_notify_subscribers(activity) - |> Utils.maybe_notify_followers(activity) - |> Enum.uniq() + 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 @@ -363,6 +378,27 @@ def get_notified_from_activity(%Activity{data: %{"type" => type}} = activity, lo def get_notified_from_activity(_, _local_only), do: {[], []} + # For some activities, only notify the author of the object + def get_potential_receiver_ap_ids(%{data: %{"type" => type, "object" => object_id}}) + when type in ~w{Like Announce EmojiReact} do + case Object.get_cached_by_ap_id(object_id) do + %Object{data: %{"actor" => actor}} -> + [actor] + + _ -> + [] + end + end + + def get_potential_receiver_ap_ids(activity) do + [] + |> Utils.maybe_notify_to_recipients(activity) + |> Utils.maybe_notify_mentioned_recipients(activity) + |> Utils.maybe_notify_subscribers(activity) + |> Utils.maybe_notify_followers(activity) + |> Enum.uniq() + end + @doc "Filters out AP IDs domain-blocking and not following the activity's actor" def exclude_domain_blocker_ap_ids(ap_ids, activity, preloaded_users \\ []) 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/plugs/authentication_plug.ex b/lib/pleroma/plugs/authentication_plug.ex index 0061c69dc..057ea42f1 100644 --- a/lib/pleroma/plugs/authentication_plug.ex +++ b/lib/pleroma/plugs/authentication_plug.ex @@ -3,7 +3,6 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Plugs.AuthenticationPlug do - alias Comeonin.Pbkdf2 alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.User @@ -17,8 +16,13 @@ def checkpw(password, "$6" <> _ = password_hash) do :crypt.crypt(password, password_hash) == password_hash end + def checkpw(password, "$2" <> _ = password_hash) do + # Handle bcrypt passwords for Mastodon migration + Bcrypt.verify_pass(password, password_hash) + end + def checkpw(password, "$pbkdf2" <> _ = password_hash) do - Pbkdf2.checkpw(password, password_hash) + Pbkdf2.verify_pass(password, password_hash) end def checkpw(_password, _password_hash) do @@ -26,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( @@ -37,7 +60,9 @@ def call( } = conn, _ ) do - if Pbkdf2.checkpw(password, password_hash) do + if checkpw(password, password_hash) do + {:ok, auth_user} = maybe_update_password(auth_user, password) + conn |> assign(:user, auth_user) |> OAuthScopesPlug.skip_plug() @@ -47,7 +72,7 @@ def call( end def call(%{assigns: %{auth_credentials: %{password: _}}} = conn, _) do - Pbkdf2.dummy_checkpw() + Pbkdf2.no_user_verify() conn end diff --git a/lib/pleroma/plugs/ensure_authenticated_plug.ex b/lib/pleroma/plugs/ensure_authenticated_plug.ex index 9c8f5597f..3fe550806 100644 --- a/lib/pleroma/plugs/ensure_authenticated_plug.ex +++ b/lib/pleroma/plugs/ensure_authenticated_plug.ex @@ -15,26 +15,25 @@ def init(options) do end @impl true + def perform( + %{ + assigns: %{ + auth_credentials: %{password: _}, + user: %User{multi_factor_authentication_settings: %{enabled: true}} + } + } = conn, + _ + ) do + conn + |> render_error(:forbidden, "Two-factor authentication enabled, you must use a access token.") + |> halt() + end + def perform(%{assigns: %{user: %User{}}} = conn, _) do conn end - def perform(conn, options) do - perform = - cond do - options[:if_func] -> options[:if_func].() - options[:unless_func] -> !options[:unless_func].() - true -> true - end - - if perform do - fail(conn) - else - conn - end - end - - def fail(conn) do + def perform(conn, _) do conn |> render_error(:forbidden, "Invalid credentials.") |> halt() diff --git a/lib/pleroma/plugs/federating_plug.ex b/lib/pleroma/plugs/federating_plug.ex index 7d947339f..09038f3c6 100644 --- a/lib/pleroma/plugs/federating_plug.ex +++ b/lib/pleroma/plugs/federating_plug.ex @@ -19,6 +19,9 @@ def call(conn, _opts) do def federating?, do: Pleroma.Config.get([:instance, :federating]) + # Definition for the use in :if_func / :unless_func plug options + def federating?(_conn), do: federating?() + defp fail(conn) do conn |> put_status(404) diff --git a/lib/pleroma/plugs/http_security_plug.ex b/lib/pleroma/plugs/http_security_plug.ex index 6462797b6..6a339b32c 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,46 @@ 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) + + 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(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/scheduled_activity.ex b/lib/pleroma/scheduled_activity.ex index 8ff06a462..0937cb7db 100644 --- a/lib/pleroma/scheduled_activity.ex +++ b/lib/pleroma/scheduled_activity.ex @@ -40,7 +40,7 @@ defp with_media_attachments( %{changes: %{params: %{"media_ids" => media_ids} = params}} = changeset ) when is_list(media_ids) do - media_attachments = Utils.attachments_from_ids(%{"media_ids" => media_ids}) + media_attachments = Utils.attachments_from_ids(%{media_ids: media_ids}) params = params diff --git a/lib/pleroma/stats.ex b/lib/pleroma/stats.ex index 8d2809bbb..6b3a8a41f 100644 --- a/lib/pleroma/stats.ex +++ b/lib/pleroma/stats.ex @@ -91,7 +91,7 @@ def calculate_stat_data do peers: peers, stats: %{ domain_count: domain_count, - status_count: status_count, + status_count: status_count || 0, user_count: user_count } } diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex index 762d813d9..1be1a3a5b 100644 --- a/lib/pleroma/upload.ex +++ b/lib/pleroma/upload.ex @@ -134,7 +134,7 @@ defp prepare_upload(%Plug.Upload{} = file, opts) do end end - defp prepare_upload(%{"img" => "data:image/" <> image_data}, opts) do + defp prepare_upload(%{img: "data:image/" <> image_data}, opts) do parsed = Regex.named_captures(~r/(?jpeg|png|gif);base64,(?.*)/, image_data) data = Base.decode64!(parsed["data"], ignore: :whitespace) hash = String.downcase(Base.encode16(:crypto.hash(:sha256, data))) diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 99358ddaf..72ee2d58e 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -9,7 +9,6 @@ defmodule Pleroma.User do import Ecto.Query import Ecto, only: [assoc: 2] - alias Comeonin.Pbkdf2 alias Ecto.Multi alias Pleroma.Activity alias Pleroma.Config @@ -20,6 +19,7 @@ defmodule Pleroma.User do alias Pleroma.Formatter alias Pleroma.HTML alias Pleroma.Keys + alias Pleroma.MFA alias Pleroma.Notification alias Pleroma.Object alias Pleroma.Registration @@ -29,7 +29,9 @@ defmodule Pleroma.User do alias Pleroma.UserRelationship 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 alias Pleroma.Web.CommonAPI.Utils, as: CommonUtils @@ -113,7 +115,6 @@ defmodule Pleroma.User do field(:is_admin, :boolean, default: false) field(:show_role, :boolean, default: true) field(:settings, :map, default: nil) - field(:magic_key, :string, default: nil) field(:uri, Types.Uri, default: nil) field(:hide_followers_count, :boolean, default: false) field(:hide_follows_count, :boolean, default: false) @@ -189,6 +190,12 @@ defmodule Pleroma.User do # `:subscribers` is deprecated (replaced with `subscriber_users` relation) field(:subscribers, {:array, :string}, default: []) + embeds_one( + :multi_factor_authentication_settings, + MFA.Settings, + on_replace: :delete + ) + timestamps() end @@ -298,8 +305,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 @@ -387,7 +399,6 @@ def remote_user_changeset(struct \\ %User{local: false}, params) do :banner, :locked, :last_refreshed_at, - :magic_key, :uri, :follower_address, :following_address, @@ -527,9 +538,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) @@ -550,7 +562,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 @@ -743,7 +755,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) @@ -754,7 +778,7 @@ def unfollow(%User{} = follower, %User{} = followed) do |> update_following_count() |> set_cache() - {:ok, follower, Utils.fetch_latest_follow(follower, followed)} + {:ok, follower, followed} nil -> {:error, "Not subscribed!"} @@ -927,6 +951,7 @@ def get_cached_by_nickname_or_id(nickname_or_id, opts \\ []) do end end + @spec get_by_nickname(String.t()) :: User.t() | nil def get_by_nickname(nickname) do Repo.get_by(User, nickname: nickname) || if Regex.match?(~r(@#{Pleroma.Web.Endpoint.host()})i, nickname) do @@ -1184,8 +1209,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 @@ -1197,7 +1223,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 @@ -1393,15 +1421,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 @@ -1423,12 +1449,29 @@ 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()} def perform(:delete, %User{} = user) do - {:ok, _user} = ActivityPub.delete(user) - # Remove all relationships user |> get_followers() @@ -1446,14 +1489,7 @@ def perform(:delete, %User{} = user) do delete_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_or_deactivate(user) end def perform(:deactivate_async, user, status), do: deactivate(user, status) @@ -1538,37 +1574,42 @@ def follow_import(%User{} = follower, followed_identifiers) }) end - def delete_user_activities(%User{ap_id: ap_id}) do + def delete_user_activities(%User{ap_id: ap_id} = user) do ap_id |> Activity.Queries.by_actor() |> RepoStreamer.chunk_stream(50) - |> Stream.each(fn activities -> Enum.each(activities, &delete_activity/1) end) + |> Stream.each(fn activities -> + Enum.each(activities, fn activity -> delete_activity(activity, user) end) + end) |> Stream.run() end - defp delete_activity(%{data: %{"type" => "Create"}} = activity) do - activity - |> Object.normalize() - |> ActivityPub.delete() + defp delete_activity(%{data: %{"type" => "Create", "object" => object}} = activity, user) do + with {_, %Object{}} <- {:find_object, Object.get_by_ap_id(object)}, + {:ok, delete_data, _} <- Builder.delete(user, object) do + Pipeline.common_pipeline(delete_data, local: user.local) + else + {:find_object, nil} -> + # We have the create activity, but not the object, it was probably pruned. + # Insert a tombstone and try again + with {:ok, tombstone_data, _} <- Builder.tombstone(user.ap_id, object), + {:ok, _tombstone} <- Object.create(tombstone_data) do + delete_activity(activity, user) + end + + e -> + Logger.error("Could not delete #{object} created by #{activity.data["ap_id"]}") + Logger.error("Error: #{inspect(e)}") + end end - defp delete_activity(%{data: %{"type" => "Like"}} = activity) do - object = Object.normalize(activity) - - activity.actor - |> get_cached_by_ap_id() - |> ActivityPub.unlike(object) + defp delete_activity(%{data: %{"type" => type}} = activity, user) + when type in ["Like", "Announce"] do + {:ok, undo, _} = Builder.undo(user, activity) + Pipeline.common_pipeline(undo, local: user.local) end - defp delete_activity(%{data: %{"type" => "Announce"}} = activity) do - object = Object.normalize(activity) - - activity.actor - |> get_cached_by_ap_id() - |> ActivityPub.unannounce(object) - end - - defp delete_activity(_activity), do: "Doing nothing" + defp delete_activity(_activity, _user), do: "Doing nothing" def html_filter_policy(%User{no_rich_text: true}) do Pleroma.HTML.Scrubber.TwitterText @@ -1579,12 +1620,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 @@ -1915,7 +1963,7 @@ def get_ap_ids_by_nicknames(nicknames) do defp put_password_hash( %Ecto.Changeset{valid?: true, changes: %{password: password}} = changeset ) do - change(changeset, password_hash: Pbkdf2.hashpwsalt(password)) + change(changeset, password_hash: Pbkdf2.hash_pwd_salt(password)) end defp put_password_hash(changeset), do: changeset diff --git a/lib/pleroma/user/query.ex b/lib/pleroma/user/query.ex index ac77aab71..293bbc082 100644 --- a/lib/pleroma/user/query.ex +++ b/lib/pleroma/user/query.ex @@ -45,6 +45,7 @@ defmodule Pleroma.User.Query do is_admin: boolean(), is_moderator: boolean(), super_users: boolean(), + exclude_service_users: boolean(), followers: User.t(), friends: User.t(), recipients_from_activity: [String.t()], @@ -88,6 +89,10 @@ 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")) + end + defp compose_query({key, value}, query) when key in @equal_criteria and not_empty_string(value) do where(query, [u], ^[{key, value}]) @@ -98,7 +103,7 @@ defp compose_query({key, values}, query) when key in @contains_criteria and is_l end defp compose_query({:tags, tags}, query) when is_list(tags) and length(tags) > 0 do - Enum.reduce(tags, query, &prepare_tag_criteria/2) + where(query, [u], fragment("? && ?", u.tags, ^tags)) end defp compose_query({:is_admin, _}, query) do @@ -162,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 @@ -192,10 +195,6 @@ defp compose_query({:limit, limit}, query) do defp compose_query(_unsupported_param, query), do: query - defp prepare_tag_criteria(tag, query) do - or_where(query, [u], fragment("? = any(?)", ^tag, u.tags)) - end - defp location_query(query, local) do where(query, [u], u.local == ^local) |> where([u], not is_nil(u.nickname)) diff --git a/lib/pleroma/user/welcome_message.ex b/lib/pleroma/user/welcome_message.ex index f0ac8ebae..f8f520285 100644 --- a/lib/pleroma/user/welcome_message.ex +++ b/lib/pleroma/user/welcome_message.ex @@ -10,8 +10,8 @@ def post_welcome_message_to_user(user) do with %User{} = sender_user <- welcome_user(), message when is_binary(message) <- welcome_message() do CommonAPI.post(sender_user, %{ - "visibility" => "direct", - "status" => "@#{user.nickname}\n#{message}" + visibility: "direct", + status: "@#{user.nickname}\n#{message}" }) else _ -> {:ok, nil} 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 4b865b342..7f6b59cc6 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -173,12 +173,6 @@ def insert(map, local \\ true, fake \\ false, bypass_actor_check \\ false) when BackgroundWorker.enqueue("fetch_data_for_activity", %{"activity_id" => activity.id}) - Notification.create_notifications(activity) - - conversation = create_or_bump_conversation(activity, map["actor"]) - participations = get_participations(conversation) - stream_out(activity) - stream_out_participations(participations) {:ok, activity} else %Activity{} = activity -> @@ -201,6 +195,15 @@ def insert(map, local \\ true, fake \\ false, bypass_actor_check \\ false) when end end + def notify_and_stream(activity) do + Notification.create_notifications(activity) + + conversation = create_or_bump_conversation(activity, activity.actor) + participations = get_participations(conversation) + stream_out(activity) + 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} @@ -285,6 +288,7 @@ defp do_create(%{to: to, actor: actor, context: context, object: object} = param _ <- increase_poll_votes_if_vote(create_data), {:quick_insert, false, activity} <- {:quick_insert, quick_insert?, activity}, {:ok, _actor} <- increase_note_count_if_public(actor, activity), + _ <- notify_and_stream(activity), :ok <- maybe_federate(activity) do {:ok, activity} else @@ -312,6 +316,7 @@ def listen(%{to: to, actor: actor, context: context, object: object} = params) d additional ), {:ok, activity} <- insert(listen_data, local), + _ <- notify_and_stream(activity), :ok <- maybe_federate(activity) do {:ok, activity} end @@ -336,6 +341,7 @@ def accept_or_reject(type, %{to: to, actor: actor, object: object} = params) do %{"to" => to, "type" => type, "actor" => actor.ap_id, "object" => object} |> Utils.maybe_put("id", activity_id), {:ok, activity} <- insert(data, local), + _ <- notify_and_stream(activity), :ok <- maybe_federate(activity) do {:ok, activity} end @@ -355,140 +361,12 @@ def update(%{to: to, cc: cc, actor: actor, object: object} = params) do }, 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 react_with_emoji(User.t(), Object.t(), String.t(), keyword()) :: - {:ok, Activity.t(), Object.t()} | {:error, any()} - def react_with_emoji(user, object, emoji, options \\ []) do - with {:ok, result} <- - Repo.transaction(fn -> do_react_with_emoji(user, object, emoji, options) end) do - result - end - end - - defp do_react_with_emoji(user, object, emoji, options) do - with local <- Keyword.get(options, :local, true), - activity_id <- Keyword.get(options, :activity_id, nil), - true <- Pleroma.Emoji.is_unicode_emoji?(emoji), - reaction_data <- make_emoji_reaction_data(user, object, emoji, activity_id), - {:ok, activity} <- insert(reaction_data, local), - {:ok, object} <- add_emoji_reaction_to_object(activity, object), - :ok <- maybe_federate(activity) do - {:ok, activity, object} - else - false -> {:error, false} - {:error, error} -> Repo.rollback(error) - end - end - - @spec unreact_with_emoji(User.t(), String.t(), keyword()) :: - {:ok, Activity.t(), Object.t()} | {:error, any()} - def unreact_with_emoji(user, reaction_id, options \\ []) do - with {:ok, result} <- - Repo.transaction(fn -> do_unreact_with_emoji(user, reaction_id, options) end) do - result - end - end - - defp do_unreact_with_emoji(user, reaction_id, options) do - with local <- Keyword.get(options, :local, true), - activity_id <- Keyword.get(options, :activity_id, nil), - user_ap_id <- user.ap_id, - %Activity{actor: ^user_ap_id} = reaction_activity <- Activity.get_by_ap_id(reaction_id), - object <- Object.normalize(reaction_activity), - unreact_data <- make_undo_data(user, reaction_activity, activity_id), - {:ok, activity} <- insert(unreact_data, local), - {:ok, object} <- remove_emoji_reaction_from_object(reaction_activity, object), - :ok <- maybe_federate(activity) do - {:ok, activity, object} - else - {:error, error} -> Repo.rollback(error) - end - end - - @spec unlike(User.t(), Object.t(), String.t() | nil, boolean()) :: - {:ok, Activity.t(), Activity.t(), Object.t()} | {:ok, Object.t()} | {:error, any()} - def unlike(%User{} = actor, %Object{} = object, activity_id \\ nil, local \\ true) do - with {:ok, result} <- - Repo.transaction(fn -> do_unlike(actor, object, activity_id, local) end) do - result - end - end - - defp do_unlike(actor, object, activity_id, local) do - with %Activity{} = like_activity <- get_existing_like(actor.ap_id, object), - unlike_data <- make_unlike_data(actor, like_activity, activity_id), - {:ok, unlike_activity} <- insert(unlike_data, local), - {:ok, _activity} <- Repo.delete(like_activity), - {:ok, object} <- remove_like_from_object(like_activity, object), - :ok <- maybe_federate(unlike_activity) do - {:ok, unlike_activity, like_activity, object} - else - nil -> {:ok, object} - {:error, error} -> Repo.rollback(error) - 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), - :ok <- maybe_federate(activity) do - {:ok, activity, object} - else - false -> {:error, false} - {:error, error} -> Repo.rollback(error) - end - end - - @spec unannounce(User.t(), Object.t(), String.t() | nil, boolean()) :: - {:ok, Activity.t(), Object.t()} | {:ok, Object.t()} | {:error, any()} - def unannounce( - %User{} = actor, - %Object{} = object, - activity_id \\ nil, - local \\ true - ) do - with {:ok, result} <- - Repo.transaction(fn -> do_unannounce(actor, object, activity_id, local) end) do - result - end - end - - defp do_unannounce(actor, object, activity_id, local) do - with %Activity{} = announce_activity <- get_existing_announce(actor.ap_id, object), - unannounce_data <- make_unannounce_data(actor, announce_activity, activity_id), - {:ok, unannounce_activity} <- insert(unannounce_data, local), - :ok <- maybe_federate(unannounce_activity), - {:ok, _activity} <- Repo.delete(announce_activity), - {:ok, object} <- remove_announce_from_object(announce_activity, object) do - {:ok, unannounce_activity, object} - else - nil -> {:ok, object} - {:error, error} -> Repo.rollback(error) - end - end - @spec follow(User.t(), User.t(), String.t() | nil, boolean()) :: {:ok, Activity.t()} | {:error, any()} def follow(follower, followed, activity_id \\ nil, local \\ true) do @@ -501,6 +379,7 @@ def follow(follower, followed, activity_id \\ nil, local \\ true) do 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), :ok <- maybe_federate(activity) do {:ok, activity} else @@ -522,6 +401,7 @@ defp do_unfollow(follower, followed, activity_id, local) do {:ok, follow_activity} <- update_follow_state(follow_activity, "cancelled"), unfollow_data <- make_unfollow_data(follower, followed, follow_activity, activity_id), {:ok, activity} <- insert(unfollow_data, local), + _ <- notify_and_stream(activity), :ok <- maybe_federate(activity) do {:ok, activity} else @@ -530,67 +410,6 @@ defp do_unfollow(follower, followed, activity_id, local) do end end - @spec delete(User.t() | Object.t(), keyword()) :: {:ok, User.t() | Object.t()} | {:error, any()} - def delete(entity, options \\ []) do - with {:ok, result} <- Repo.transaction(fn -> do_delete(entity, options) end) do - result - end - end - - defp do_delete(%User{ap_id: ap_id, follower_address: follower_address} = user, _) do - with data <- %{ - "to" => [follower_address], - "type" => "Delete", - "actor" => ap_id, - "object" => %{"type" => "Person", "id" => ap_id} - }, - {:ok, activity} <- insert(data, true, true, true), - :ok <- maybe_federate(activity) do - {:ok, user} - end - end - - defp do_delete(%Object{data: %{"id" => id, "actor" => actor}} = object, options) do - local = Keyword.get(options, :local, true) - activity_id = Keyword.get(options, :activity_id, nil) - actor = Keyword.get(options, :actor, actor) - - user = User.get_cached_by_ap_id(actor) - to = (object.data["to"] || []) ++ (object.data["cc"] || []) - - with create_activity <- Activity.get_create_by_object_ap_id(id), - data <- - %{ - "type" => "Delete", - "actor" => actor, - "object" => id, - "to" => to, - "deleted_activity_id" => create_activity && create_activity.id - } - |> maybe_put("id", activity_id), - {:ok, activity} <- insert(data, local, false), - {:ok, object, _create_activity} <- Object.delete(object), - stream_out_participations(object, user), - _ <- decrease_replies_count_if_reply(object), - {:ok, _actor} <- decrease_note_count_if_public(user, object), - :ok <- maybe_federate(activity) do - {:ok, activity} - else - {:error, error} -> - Repo.rollback(error) - end - end - - defp do_delete(%Object{data: %{"type" => "Tombstone", "id" => ap_id}}, _) do - activity = - ap_id - |> Activity.Queries.by_object_id() - |> Activity.Queries.by_type("Delete") - |> Repo.one() - - {:ok, activity} - 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 @@ -601,7 +420,6 @@ def block(blocker, blocked, activity_id \\ nil, local \\ true) do end defp do_block(blocker, blocked, activity_id, local) do - outgoing_blocks = Config.get([:activitypub, :outgoing_blocks]) unfollow_blocked = Config.get([:activitypub, :unfollow_blocked]) if unfollow_blocked do @@ -609,9 +427,9 @@ defp do_block(blocker, blocked, activity_id, local) do if follow_activity, do: unfollow(blocker, blocked, nil, local) end - with true <- outgoing_blocks, - block_data <- make_block_data(blocker, blocked, activity_id), + 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 @@ -619,27 +437,6 @@ defp do_block(blocker, blocked, activity_id, local) do end end - @spec unblock(User.t(), User.t(), String.t() | nil, boolean()) :: - {:ok, Activity.t()} | {:error, any()} | nil - def unblock(blocker, blocked, activity_id \\ nil, local \\ true) do - with {:ok, result} <- - Repo.transaction(fn -> do_unblock(blocker, blocked, activity_id, local) end) do - result - end - end - - defp do_unblock(blocker, blocked, activity_id, local) do - with %Activity{} = block_activity <- fetch_latest_block(blocker, blocked), - unblock_data <- make_unblock_data(blocker, blocked, block_activity, activity_id), - {:ok, activity} <- insert(unblock_data, local), - :ok <- maybe_federate(activity) do - {:ok, activity} - else - nil -> nil - {:error, error} -> Repo.rollback(error) - end - end - @spec flag(map()) :: {:ok, Activity.t()} | {:error, any()} def flag( %{ @@ -666,6 +463,7 @@ def flag( with flag_data <- make_flag_data(params, additional), {:ok, activity} <- insert(flag_data, local), {:ok, stripped_activity} <- strip_report_status_data(activity), + _ <- notify_and_stream(activity), :ok <- maybe_federate(stripped_activity) do User.all_superusers() |> Enum.filter(fn user -> not is_nil(user.email) end) @@ -689,7 +487,8 @@ def move(%User{} = origin, %User{} = target, local \\ true) do } with true <- origin.ap_id in target.also_known_as, - {:ok, activity} <- insert(params, local) do + {:ok, activity} <- insert(params, local), + _ <- notify_and_stream(activity) do maybe_federate(activity) BackgroundWorker.enqueue("move_following", %{ @@ -750,14 +549,27 @@ def fetch_latest_activity_id_for_context(context, opts \\ %{}) do |> Repo.one() end - @spec fetch_public_activities(map(), Pagination.type()) :: [Activity.t()] - def fetch_public_activities(opts \\ %{}, pagination \\ :keyset) do + @spec fetch_public_or_unlisted_activities(map(), Pagination.type()) :: [Activity.t()] + def fetch_public_or_unlisted_activities(opts \\ %{}, pagination \\ :keyset) do opts = Map.drop(opts, ["user"]) - [Constants.as_public()] - |> fetch_activities_query(opts) - |> restrict_unlisted() - |> Pagination.fetch_paginated(opts, pagination) + query = fetch_activities_query([Constants.as_public()], opts) + + query = + if opts["restrict_unlisted"] do + restrict_unlisted(query) + else + query + end + + Pagination.fetch_paginated(query, 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] @@ -1357,7 +1169,7 @@ def fetch_favourites(user, params \\ %{}, pagination \\ :keyset) do |> Activity.with_joined_object() |> Object.with_joined_activity() |> select([_like, object, activity], %{activity | object: object}) - |> order_by([like, _, _], desc: like.id) + |> order_by([like, _, _], desc_nulls_last: like.id) |> Pagination.fetch_paginated( Map.merge(params, %{"skip_order" => true}), pagination, diff --git a/lib/pleroma/web/activity_pub/activity_pub_controller.ex b/lib/pleroma/web/activity_pub/activity_pub_controller.ex index f607931ab..28727d619 100644 --- a/lib/pleroma/web/activity_pub/activity_pub_controller.ex +++ b/lib/pleroma/web/activity_pub/activity_pub_controller.ex @@ -21,6 +21,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do alias Pleroma.Web.ActivityPub.UserView alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.ActivityPub.Visibility + alias Pleroma.Web.Endpoint alias Pleroma.Web.FederatingPlug alias Pleroma.Web.Federator @@ -34,7 +35,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do plug( EnsureAuthenticatedPlug, - [unless_func: &FederatingPlug.federating?/0] when action not in @federating_only_actions + [unless_func: &FederatingPlug.federating?/1] when action not in @federating_only_actions ) # Note: :following and :followers must be served even without authentication (as via :api) @@ -75,8 +76,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 +102,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 @@ -396,7 +397,10 @@ def read_inbox(%{assigns: %{user: %User{nickname: as_nickname}}} = conn, %{ |> json(err) end - defp handle_user_activity(%User{} = user, %{"type" => "Create"} = params) do + defp handle_user_activity( + %User{} = user, + %{"type" => "Create", "object" => %{"type" => "Note"}} = params + ) do object = params["object"] |> Map.merge(Map.take(params, ["to", "cc"])) @@ -415,7 +419,8 @@ defp handle_user_activity(%User{} = user, %{"type" => "Create"} = params) do defp handle_user_activity(%User{} = user, %{"type" => "Delete"} = params) do with %Object{} = object <- Object.normalize(params["object"]), true <- user.is_moderator || user.ap_id == object.data["actor"], - {:ok, delete} <- ActivityPub.delete(object) do + {:ok, delete_data, _} <- Builder.delete(user, object.data["id"]), + {:ok, delete, _} <- Pipeline.common_pipeline(delete_data, local: true) do {:ok, delete} else _ -> {:error, dgettext("errors", "Can't delete object")} diff --git a/lib/pleroma/web/activity_pub/builder.ex b/lib/pleroma/web/activity_pub/builder.ex index 429a510b8..51b74414a 100644 --- a/lib/pleroma/web/activity_pub/builder.ex +++ b/lib/pleroma/web/activity_pub/builder.ex @@ -7,11 +7,115 @@ defmodule Pleroma.Web.ActivityPub.Builder do 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 + data = + data + |> Map.put("content", emoji) + |> Map.put("type", "EmojiReact") + + {:ok, data, meta} + end + end + + @spec undo(User.t(), Activity.t()) :: {:ok, map(), keyword()} + def undo(actor, object) do + {:ok, + %{ + "id" => Utils.generate_activity_id(), + "actor" => actor.ap_id, + "type" => "Undo", + "object" => object.data["id"], + "to" => object.data["to"] || [], + "cc" => object.data["cc"] || [] + }, []} + end + + @spec delete(User.t(), String.t()) :: {:ok, map(), keyword()} + def delete(actor, object_id) do + object = Object.normalize(object_id, false) + + user = !object && User.get_cached_by_ap_id(object_id) + + to = + case {object, user} do + {%Object{}, _} -> + # We are deleting an object, address everyone who was originally mentioned + (object.data["to"] || []) ++ (object.data["cc"] || []) + + {_, %User{follower_address: follower_address}} -> + # We are deleting a user, address the followers of that user + [follower_address] + end + + {:ok, + %{ + "id" => Utils.generate_activity_id(), + "actor" => actor.ap_id, + "object" => object_id, + "to" => to, + "type" => "Delete" + }, []} + end + + @spec tombstone(String.t(), String.t()) :: {:ok, map(), keyword()} + def tombstone(actor, id) do + {:ok, + %{ + "id" => id, + "actor" => actor, + "type" => "Tombstone" + }, []} + end + @spec like(User.t(), Object.t()) :: {:ok, map(), keyword()} def like(actor, object) do + with {:ok, data, meta} <- object_action(actor, object) do + data = + data + |> Map.put("type", "Like") + + {:ok, data, meta} + end + 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"]) # Address the actor of the object, and our actor's follower collection if the post is public. @@ -33,7 +137,6 @@ def like(actor, object) do %{ "id" => Utils.generate_activity_id(), "actor" => actor.ap_id, - "type" => "Like", "object" => object.data["id"], "to" => to, "cc" => cc, 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/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex index dc4bce059..2599067a8 100644 --- a/lib/pleroma/web/activity_pub/object_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validator.ex @@ -11,11 +11,36 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidator do alias Pleroma.Object alias Pleroma.User + alias Pleroma.Web.ActivityPub.ObjectValidators.AnnounceValidator + 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 @spec validate(map(), keyword()) :: {:ok, map(), keyword()} | {:error, any()} def validate(object, meta) + def validate(%{"type" => "Undo"} = object, meta) do + with {:ok, object} <- + object + |> UndoValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do + object = stringify_keys(object) + {:ok, object, meta} + end + end + + def validate(%{"type" => "Delete"} = object, meta) do + with cng <- DeleteValidator.cast_and_validate(object), + do_not_federate <- DeleteValidator.do_not_federate?(cng), + {:ok, object} <- Ecto.Changeset.apply_action(cng, :insert) do + object = stringify_keys(object) + meta = Keyword.put(meta, :do_not_federate, do_not_federate) + {:ok, object, meta} + end + end + def validate(%{"type" => "Like"} = object, meta) do with {:ok, object} <- object |> LikeValidator.cast_and_validate() |> Ecto.Changeset.apply_action(:insert) do @@ -24,14 +49,46 @@ def validate(%{"type" => "Like"} = object, meta) do end end + def validate(%{"type" => "EmojiReact"} = object, meta) do + with {:ok, object} <- + object + |> EmojiReactValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do + object = stringify_keys(object |> Map.from_struct()) + {:ok, object, 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 stringify_keys(%{__struct__: _} = object) do + object + |> Map.from_struct() + |> stringify_keys + end + def stringify_keys(object) do object |> Map.new(fn {key, val} -> {to_string(key), val} end) end + def fetch_actor(object) do + with {:ok, actor} <- Types.ObjectID.cast(object["actor"]) do + User.get_or_fetch_by_ap_id(actor) + end + end + def fetch_actor_and_object(object) do - User.get_or_fetch_by_ap_id(object["actor"]) - Object.normalize(object["object"]) + fetch_actor(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..40f861f47 --- /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.Object + alias Pleroma.User + alias Pleroma.Web.ActivityPub.ObjectValidators.Types + 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, Types.ObjectID, primary_key: true) + field(:type, :string) + field(:object, Types.ObjectID) + field(:actor, Types.ObjectID) + field(:context, :string, autogenerate: {Utils, :generate_context_id, []}) + field(:to, Types.Recipients, default: []) + field(:cc, Types.Recipients, default: []) + field(:published, Types.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/common_validations.ex b/lib/pleroma/web/activity_pub/object_validators/common_validations.ex index b479c3918..aeef31945 100644 --- a/lib/pleroma/web/activity_pub/object_validators/common_validations.ex +++ b/lib/pleroma/web/activity_pub/object_validators/common_validations.ex @@ -5,10 +5,33 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations do import Ecto.Changeset + alias Pleroma.Activity alias Pleroma.Object alias Pleroma.User - def validate_actor_presence(cng, field_name \\ :actor) do + def validate_recipients_presence(cng, fields \\ [:to, :cc]) do + non_empty = + fields + |> Enum.map(fn field -> get_field(cng, field) end) + |> Enum.any?(fn + [] -> false + _ -> true + end) + + if non_empty do + cng + else + fields + |> Enum.reduce(cng, fn field, cng -> + cng + |> add_error(field, "no recipients in any field") + end) + end + end + + def validate_actor_presence(cng, options \\ []) do + field_name = Keyword.get(options, :field_name, :actor) + cng |> validate_change(field_name, fn field_name, actor -> if User.get_cached_by_ap_id(actor) do @@ -19,14 +42,39 @@ def validate_actor_presence(cng, field_name \\ :actor) do end) end - def validate_object_presence(cng, field_name \\ :object) do + def validate_object_presence(cng, options \\ []) do + field_name = Keyword.get(options, :field_name, :object) + allowed_types = Keyword.get(options, :allowed_types, false) + cng - |> validate_change(field_name, fn field_name, object -> - if Object.get_cached_by_ap_id(object) do - [] - else - [{field_name, "can't find object"}] + |> validate_change(field_name, fn field_name, object_id -> + object = Object.get_cached_by_ap_id(object_id) || Activity.get_by_ap_id(object_id) + + cond do + !object -> + [{field_name, "can't find object"}] + + object && allowed_types && object.data["type"] not in allowed_types -> + [{field_name, "object not in allowed types"}] + + true -> + [] end end) end + + def validate_object_or_user_presence(cng, options \\ []) do + field_name = Keyword.get(options, :field_name, :object) + options = Keyword.put(options, :field_name, field_name) + + actor_cng = + cng + |> validate_actor_presence(options) + + object_cng = + cng + |> validate_object_presence(options) + + if actor_cng.valid?, do: actor_cng, else: object_cng + end end diff --git a/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex b/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex new file mode 100644 index 000000000..f42c03510 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex @@ -0,0 +1,100 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator do + use Ecto.Schema + + alias Pleroma.Activity + alias Pleroma.User + alias Pleroma.Web.ActivityPub.ObjectValidators.Types + + import Ecto.Changeset + import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations + + @primary_key false + + embedded_schema do + field(:id, Types.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) + end + + def cast_data(data) do + %__MODULE__{} + |> cast(data, __schema__(:fields)) + end + + def add_deleted_activity_id(cng) do + object = + cng + |> get_field(:object) + + with %Activity{id: id} <- Activity.get_create_by_object_ap_id(object) do + cng + |> put_change(:deleted_activity_id, id) + else + _ -> cng + end + end + + @deletable_types ~w{ + Answer + Article + Audio + Event + Note + Page + Question + Video + Tombstone + } + def validate_data(cng) do + cng + |> validate_required([:id, :type, :actor, :to, :cc, :object]) + |> validate_inclusion(:type, ["Delete"]) + |> validate_actor_presence() + |> validate_deletion_rights() + |> validate_object_or_user_presence(allowed_types: @deletable_types) + |> add_deleted_activity_id() + end + + def do_not_federate?(cng) do + !same_domain?(cng) + end + + defp same_domain?(cng) do + actor_uri = + cng + |> get_field(:actor) + |> URI.parse() + + object_uri = + cng + |> get_field(:object) + |> URI.parse() + + object_uri.host == actor_uri.host + end + + def validate_deletion_rights(cng) do + actor = User.get_cached_by_ap_id(get_field(cng, :actor)) + + if User.superuser?(actor) || same_domain?(cng) do + cng + else + cng + |> add_error(:actor, "is not allowed to delete object") + end + end + + def cast_and_validate(data) do + data + |> cast_data + |> validate_data + end +end 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 new file mode 100644 index 000000000..e87519c59 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex @@ -0,0 +1,81 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.EmojiReactValidator do + use Ecto.Schema + + alias Pleroma.Object + alias Pleroma.Web.ActivityPub.ObjectValidators.Types + + import Ecto.Changeset + import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations + + @primary_key false + + embedded_schema do + field(:id, Types.ObjectID, primary_key: true) + field(:type, :string) + field(:object, Types.ObjectID) + field(:actor, Types.ObjectID) + field(:context, :string) + field(:content, :string) + field(:to, {:array, :string}, default: []) + field(:cc, {:array, :string}, default: []) + 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 + |> fix_context() + end + + def fix_context(cng) do + object = get_field(cng, :object) + + with nil <- get_field(cng, :context), + %Object{data: %{"context" => context}} <- Object.get_cached_by_ap_id(object) do + cng + |> put_change(:context, context) + else + _ -> + cng + end + end + + def validate_emoji(cng) do + content = get_field(cng, :content) + + if Pleroma.Emoji.is_unicode_emoji?(content) do + cng + else + cng + |> add_error(:content, "must be a single character emoji") + end + end + + def validate_data(data_cng) do + data_cng + |> validate_inclusion(:type, ["EmojiReact"]) + |> validate_required([:id, :type, :object, :actor, :context, :to, :cc, :content]) + |> validate_actor_presence() + |> validate_object_presence() + |> validate_emoji() + end +end 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 1bce739bd..034f25492 100644 --- a/lib/pleroma/web/activity_pub/object_validators/like_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/like_validator.ex @@ -20,8 +20,8 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator do field(:object, Types.ObjectID) field(:actor, Types.ObjectID) field(:context, :string) - field(:to, {:array, :string}, default: []) - field(:cc, {:array, :string}, default: []) + field(:to, Types.Recipients, default: []) + field(:cc, Types.Recipients, default: []) end def cast_and_validate(data) do diff --git a/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex b/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex new file mode 100644 index 000000000..48fe61e1a --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex @@ -0,0 +1,34 @@ +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 new file mode 100644 index 000000000..d0ba418e8 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex @@ -0,0 +1,62 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.UndoValidator do + use Ecto.Schema + + alias Pleroma.Activity + alias Pleroma.Web.ActivityPub.ObjectValidators.Types + + import Ecto.Changeset + import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations + + @primary_key false + + embedded_schema do + field(:id, Types.ObjectID, primary_key: true) + field(:type, :string) + field(:object, Types.ObjectID) + field(:actor, Types.ObjectID) + field(:to, {:array, :string}, default: []) + field(:cc, {:array, :string}, default: []) + 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)) + end + + def validate_data(data_cng) do + data_cng + |> validate_inclusion(:type, ["Undo"]) + |> validate_required([:id, :type, :object, :actor, :to, :cc]) + |> validate_actor_presence() + |> validate_object_presence() + |> validate_undo_rights() + end + + def validate_undo_rights(cng) do + actor = get_field(cng, :actor) + object = get_field(cng, :object) + + with %Activity{data: %{"actor" => object_actor}} <- Activity.get_by_ap_id(object), + true <- object_actor != actor do + cng + |> add_error(:actor, "not the same as object actor") + else + _ -> cng + end + end +end diff --git a/lib/pleroma/web/activity_pub/pipeline.ex b/lib/pleroma/web/activity_pub/pipeline.ex index d5abb7567..0c54c4b23 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 @@ -44,7 +45,9 @@ defp maybe_federate(%Object{}, _), do: {:ok, :not_federated} defp maybe_federate(%Activity{} = activity, meta) do with {:ok, local} <- Keyword.fetch(meta, :local) do - if local do + do_not_federate = meta[:do_not_federate] || !Config.get([:instance, :federating]) + + if !do_not_federate && local do Federator.publish(activity) {:ok, :federated} else 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 6a8f1af96..fb6275450 100644 --- a/lib/pleroma/web/activity_pub/side_effects.ex +++ b/lib/pleroma/web/activity_pub/side_effects.ex @@ -5,8 +5,12 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do liked object, a `Follow` activity will add the user to the follower collection, and so on. """ + alias Pleroma.Activity alias Pleroma.Notification alias Pleroma.Object + alias Pleroma.Repo + alias Pleroma.User + alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Utils def handle(object, meta \\ []) @@ -23,8 +27,125 @@ def handle(%{data: %{"type" => "Like"}} = object, meta) do {:ok, object, meta} 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 + {:ok, object, meta} + end + end + + # Tasks this handles: + # - Add reaction to object + # - Set up notification + def handle(%{data: %{"type" => "EmojiReact"}} = object, meta) do + reacted_object = Object.get_by_ap_id(object.data["object"]) + Utils.add_emoji_reaction_to_object(object, reacted_object) + + Notification.create_notifications(object) + + {:ok, object, meta} + end + + # Tasks this handles: + # - Delete and unpins the create activity + # - Replace object with Tombstone + # - Set up notification + # - Reduce the user note count + # - Reduce the reply count + # - Stream out the activity + def handle(%{data: %{"type" => "Delete", "object" => deleted_object}} = object, meta) do + deleted_object = + Object.normalize(deleted_object, false) || User.get_cached_by_ap_id(deleted_object) + + result = + case deleted_object do + %Object{} -> + with {:ok, deleted_object, activity} <- Object.delete(deleted_object), + %User{} = user <- User.get_cached_by_ap_id(deleted_object.data["actor"]) do + User.remove_pinnned_activity(user, activity) + + {:ok, user} = ActivityPub.decrease_note_count_if_public(user, deleted_object) + + if in_reply_to = deleted_object.data["inReplyTo"] do + Object.decrease_replies_count(in_reply_to) + end + + ActivityPub.stream_out(object) + ActivityPub.stream_out_participations(deleted_object, user) + :ok + end + + %User{} -> + with {:ok, _} <- User.delete(deleted_object) do + :ok + end + end + + if result == :ok do + Notification.create_notifications(object) + {:ok, object, meta} + else + {:error, result} + end + end + # Nothing to do def handle(object, meta) do {:ok, object, meta} 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), + {:ok, _} <- Repo.delete(object) do + :ok + end + end + + def handle_undoing(%{data: %{"type" => "EmojiReact"}} = object) do + with %Object{} = reacted_object <- Object.get_by_ap_id(object.data["object"]), + {:ok, _} <- Utils.remove_emoji_reaction_from_object(object, reacted_object), + {:ok, _} <- Repo.delete(object) do + :ok + end + end + + def handle_undoing(%{data: %{"type" => "Announce"}} = object) do + with %Object{} = liked_object <- Object.get_by_ap_id(object.data["object"]), + {:ok, _} <- Utils.remove_announce_from_object(object, liked_object), + {:ok, _} <- Repo.delete(object) do + :ok + end + end + + def handle_undoing( + %{data: %{"type" => "Block", "actor" => blocker, "object" => blocked}} = object + ) do + with %User{} = blocker <- User.get_cached_by_ap_id(blocker), + %User{} = blocked <- User.get_cached_by_ap_id(blocked), + {:ok, _} <- User.unblock(blocker, blocked), + {:ok, _} <- Repo.delete(object) do + :ok + end + end + + def handle_undoing(object), do: {:error, ["don't know how to handle", object]} end diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 581e7040b..8443c284c 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -14,7 +14,9 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do alias Pleroma.Repo alias Pleroma.User 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 @@ -590,6 +592,9 @@ def handle_incoming( {:ok, follow_activity} <- Utils.update_follow_state_for_all(follow_activity, "accept"), %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity.data["actor"]), {:ok, _relationship} <- FollowingRelationship.update(follower, followed, :follow_accept) do + User.update_follower_count(followed) + User.update_following_count(follower) + ActivityPub.accept(%{ to: follow_activity.data["to"], type: "Accept", @@ -599,7 +604,8 @@ def handle_incoming( activity_id: id }) else - _e -> :error + _e -> + :error end end @@ -656,7 +662,8 @@ def handle_incoming( |> handle_incoming(options) end - def handle_incoming(%{"type" => "Like"} = data, _options) do + def handle_incoming(%{"type" => type} = data, _options) + when type in ["Like", "EmojiReact", "Announce"] do with :ok <- ObjectValidator.fetch_actor_and_object(data), {:ok, activity, _meta} <- Pipeline.common_pipeline(data, local: false) do @@ -666,42 +673,6 @@ def handle_incoming(%{"type" => "Like"} = data, _options) do end end - def handle_incoming( - %{ - "type" => "EmojiReact", - "object" => object_id, - "actor" => _actor, - "id" => id, - "content" => emoji - } = data, - _options - ) do - with actor <- Containment.get_actor(data), - {:ok, %User{} = actor} <- User.get_or_fetch_by_ap_id(actor), - {:ok, object} <- get_obj_helper(object_id), - {:ok, activity, _object} <- - ActivityPub.react_with_emoji(actor, object, emoji, activity_id: id, local: false) do - {:ok, activity} - else - _e -> :error - end - 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, @@ -735,55 +706,25 @@ def handle_incoming( end end - # TODO: We presently assume that any actor on the same origin domain as the object being - # deleted has the rights to delete that object. A better way to validate whether or not - # the object should be deleted is to refetch the object URI, which should return either - # an error or a tombstone. This would allow us to verify that a deletion actually took - # place. def handle_incoming( - %{"type" => "Delete", "object" => object_id, "actor" => actor, "id" => id} = data, + %{"type" => "Delete"} = data, _options ) do - object_id = Utils.get_ap_id(object_id) - - with actor <- Containment.get_actor(data), - {:ok, %User{} = actor} <- User.get_or_fetch_by_ap_id(actor), - {:ok, object} <- get_obj_helper(object_id), - :ok <- Containment.contain_origin(actor.ap_id, object.data), - {:ok, activity} <- - ActivityPub.delete(object, local: false, activity_id: id, actor: actor.ap_id) do + with {:ok, activity, _} <- Pipeline.common_pipeline(data, local: false) do {:ok, activity} else - nil -> - case User.get_cached_by_ap_id(object_id) do - %User{ap_id: ^actor} = user -> - User.delete(user) - - nil -> - :error + {:error, {:validate_object, _}} = e -> + # Check if we have a create activity for this + with {:ok, object_id} <- Types.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 + {:ok, tombstone_data, _} <- Builder.tombstone(actor, object_id), + {:ok, _tombstone} <- Object.create(tombstone_data) do + handle_incoming(data) + else + _ -> e end - - _e -> - :error - end - end - - def handle_incoming( - %{ - "type" => "Undo", - "object" => %{"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_obj_helper(object_id), - {:ok, activity, _} <- ActivityPub.unannounce(actor, object, id, false) do - {:ok, activity} - else - _e -> :error end end @@ -809,75 +750,13 @@ def handle_incoming( def handle_incoming( %{ "type" => "Undo", - "object" => %{"type" => "EmojiReact", "id" => reaction_activity_id}, - "actor" => _actor, - "id" => id + "object" => %{"type" => type} } = data, _options - ) do - with actor <- Containment.get_actor(data), - {:ok, %User{} = actor} <- User.get_or_fetch_by_ap_id(actor), - {:ok, activity, _} <- - ActivityPub.unreact_with_emoji(actor, reaction_activity_id, - activity_id: id, - local: false - ) do + ) + when type in ["Like", "EmojiReact", "Announce", "Block"] do + with {:ok, activity, _} <- Pipeline.common_pipeline(data, local: false) do {:ok, activity} - else - _e -> :error - end - end - - def handle_incoming( - %{ - "type" => "Undo", - "object" => %{"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.unblock(blocker, blocked, id, false) do - User.unblock(blocker, blocked) - {:ok, activity} - else - _e -> :error - 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" => "Undo", - "object" => %{"type" => "Like", "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_obj_helper(object_id), - {:ok, activity, _, _} <- ActivityPub.unlike(actor, object, id, false) do - {:ok, activity} - else - _e -> :error end end @@ -899,6 +778,21 @@ 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", @@ -1151,10 +1045,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) @@ -1195,6 +1093,10 @@ def set_conversation(object) do Map.put(object, "conversation", object["context"]) end + def set_sensitive(%{"sensitive" => true} = object) do + object + end + def set_sensitive(object) do tags = object["tag"] || [] Map.put(object, "sensitive", "nsfw" in tags) diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index 2d685ecc0..f2375bcc4 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -6,6 +6,7 @@ defmodule Pleroma.Web.ActivityPub.Utils do alias Ecto.Changeset alias Ecto.UUID alias Pleroma.Activity + alias Pleroma.Config alias Pleroma.Notification alias Pleroma.Object alias Pleroma.Repo @@ -169,8 +170,11 @@ def create_context(context) do Enqueues an activity for federation if it's local """ @spec maybe_federate(any()) :: :ok - def maybe_federate(%Activity{local: true} = activity) do - if Pleroma.Config.get!([:instance, :federating]) do + def maybe_federate(%Activity{local: true, data: %{"type" => type}} = activity) do + outgoing_blocks = Config.get([:activitypub, :outgoing_blocks]) + + with true <- Config.get!([:instance, :federating]), + true <- type != "Block" || outgoing_blocks do Pleroma.Web.Federator.publish(activity) end @@ -512,7 +516,7 @@ def get_latest_reaction(internal_activity_id, %{ap_id: ap_id}, emoji) do #### Announce-related helpers @doc """ - Retruns an existing announce activity if the notice has already been announced + Returns an existing announce activity if the notice has already been announced """ @spec get_existing_announce(String.t(), map()) :: Activity.t() | nil def get_existing_announce(actor, %{data: %{"id" => ap_id}}) do @@ -562,45 +566,6 @@ def make_announce_data( |> maybe_put("id", activity_id) end - @doc """ - Make unannounce activity data for the given actor and object - """ - def make_unannounce_data( - %User{ap_id: ap_id} = user, - %Activity{data: %{"context" => context, "object" => object}} = activity, - activity_id - ) do - object = Object.normalize(object) - - %{ - "type" => "Undo", - "actor" => ap_id, - "object" => activity.data, - "to" => [user.follower_address, object.data["actor"]], - "cc" => [Pleroma.Constants.as_public()], - "context" => context - } - |> maybe_put("id", activity_id) - end - - def make_unlike_data( - %User{ap_id: ap_id} = user, - %Activity{data: %{"context" => context, "object" => object}} = activity, - activity_id - ) do - object = Object.normalize(object) - - %{ - "type" => "Undo", - "actor" => ap_id, - "object" => activity.data, - "to" => [user.follower_address, object.data["actor"]], - "cc" => [Pleroma.Constants.as_public()], - "context" => context - } - |> maybe_put("id", activity_id) - end - def make_undo_data( %User{ap_id: actor, follower_address: follower_address}, %Activity{ @@ -688,16 +653,6 @@ def make_block_data(blocker, blocked, activity_id) do |> maybe_put("id", activity_id) end - def make_unblock_data(blocker, blocked, block_activity, activity_id) do - %{ - "type" => "Undo", - "actor" => blocker.ap_id, - "to" => [blocked.ap_id], - "object" => block_activity.data - } - |> maybe_put("id", activity_id) - end - #### Create-related helpers def make_create_data(params, additional) do 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 85% rename from lib/pleroma/web/admin_api/admin_api_controller.ex rename to lib/pleroma/web/admin_api/controllers/admin_api_controller.ex index 816c11e01..783203c07 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex @@ -10,6 +10,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do alias Pleroma.Activity alias Pleroma.Config alias Pleroma.ConfigDB + alias Pleroma.MFA alias Pleroma.ModerationLog alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.ReportNote @@ -17,8 +18,11 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do 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 @@ -27,14 +31,14 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do alias Pleroma.Web.AdminAPI.Search alias Pleroma.Web.CommonAPI alias Pleroma.Web.Endpoint + alias Pleroma.Web.MastodonAPI alias Pleroma.Web.MastodonAPI.AppView - alias Pleroma.Web.MastodonAPI.StatusView alias Pleroma.Web.OAuth.App alias Pleroma.Web.Router require Logger - @descriptions_json Pleroma.Docs.JSON.compile() + @descriptions Pleroma.Docs.JSON.compile() @users_page_size 50 plug( @@ -59,6 +63,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do :right_add, :right_add_multiple, :right_delete, + :disable_mfa, :right_delete_multiple, :update_user_credentials ] @@ -93,13 +98,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do plug( OAuthScopesPlug, %{scopes: ["read:statuses"], admin: true} - when action in [:list_statuses, :list_user_statuses, :list_instance_statuses] - ) - - plug( - OAuthScopesPlug, - %{scopes: ["write:statuses"], admin: true} - when action in [:status_update, :status_delete] + when action in [:list_user_statuses, :list_instance_statuses] ) plug( @@ -131,25 +130,22 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do ] ) - action_fallback(:errors) + action_fallback(AdminAPI.FallbackController) - def user_delete(%{assigns: %{user: admin}} = conn, %{"nickname" => nickname}) do - user = User.get_cached_by_nickname(nickname) - User.delete(user) - - ModerationLog.insert_log(%{ - actor: admin, - subject: [user], - action: "delete" - }) - - conn - |> json(nickname) + def user_delete(conn, %{"nickname" => nickname}) do + user_delete(conn, %{"nicknames" => [nickname]}) end def user_delete(%{assigns: %{user: admin}} = conn, %{"nicknames" => nicknames}) do - users = nicknames |> Enum.map(&User.get_cached_by_nickname/1) - User.delete(users) + users = + nicknames + |> Enum.map(&User.get_cached_by_nickname/1) + + users + |> Enum.each(fn user -> + {:ok, delete_data, _} = Builder.delete(admin, user.ap_id) + Pipeline.common_pipeline(delete_data, local: true) + end) ModerationLog.insert_log(%{ actor: admin, @@ -279,8 +275,8 @@ def list_instance_statuses(conn, %{"instance" => instance} = params) do }) 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 @@ -298,8 +294,8 @@ def list_user_statuses(conn, %{"nickname" => nickname} = params) do }) conn - |> put_view(StatusView) - |> render("index.json", %{activities: activities, as: :activity, skip_relationships: false}) + |> put_view(MastodonAPI.StatusView) + |> render("index.json", %{activities: activities, as: :activity}) else _ -> {:error, :not_found} end @@ -392,29 +388,12 @@ def list_users(conn, params) do email: params["email"] } - with {:ok, users, count} <- Search.user(Map.merge(search_params, filters)), - {:ok, users, count} <- filter_service_users(users, count), - do: - conn - |> json( - AccountView.render("index.json", - users: users, - count: count, - page_size: page_size - ) - ) - end - - defp filter_service_users(users, count) do - filtered_users = Enum.reject(users, &service_user?/1) - count = if Enum.any?(users, &service_user?/1), do: length(filtered_users), else: count - - {:ok, filtered_users, count} - end - - defp service_user?(user) do - String.match?(user.ap_id, ~r/.*\/relay$/) or - String.match?(user.ap_id, ~r/.*\/internal\/fetch$/) + with {:ok, users, count} <- Search.user(Map.merge(search_params, filters)) do + json( + conn, + AccountView.render("index.json", users: users, count: count, page_size: page_size) + ) + end end @filters ~w(local external active deactivated is_admin is_moderator) @@ -612,16 +591,10 @@ def email_invite(%{assigns: %{user: user}} = conn, %{"email" => email} = params) json_response(conn, :no_content, "") else {:registrations_open, _} -> - errors( - conn, - {:error, "To send invites you need to set the `registrations_open` option to false."} - ) + {: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."} - ) + {:error, "To send invites you need to set the `invites_enabled` option to true."} end end @@ -692,6 +665,18 @@ def force_password_reset(%{assigns: %{user: admin}} = conn, %{"nicknames" => nic json_response(conn, :no_content, "") end + @doc "Disable mfa for user's account." + def disable_mfa(conn, %{"nickname" => nickname}) do + case User.get_by_nickname(nickname) do + %User{} = user -> + MFA.disable(user) + json(conn, nickname) + + _ -> + {:error, :not_found} + end + end + @doc "Show a given user's credentials" def show_user_credentials(%{assigns: %{user: admin}} = conn, %{"nickname" => nickname}) do with %User{} = user <- User.get_cached_by_nickname_or_id(nickname) do @@ -708,7 +693,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(%{ @@ -730,11 +715,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) + + json(conn, %{errors: errors}) _ -> - json(conn, %{error: "Unable to change password."}) + json(conn, %{error: "Unable to update user."}) end end @@ -817,56 +803,6 @@ def report_notes_delete(%{assigns: %{user: user}} = conn, %{ 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_update(%{assigns: %{user: admin}} = conn, %{"id" => id} = params) do - 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, %{}) - end - end - def list_log(conn, params) do {page, page_size} = page_params(params) @@ -886,13 +822,13 @@ def list_log(conn, params) do end def config_descriptions(conn, _params) do - conn - |> Plug.Conn.put_resp_content_type("application/json") - |> Plug.Conn.send_resp(200, @descriptions_json) + 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 + with :ok <- configurable_from_database() do configs = Pleroma.Repo.all(ConfigDB) conn @@ -902,7 +838,7 @@ def config_show(conn, %{"only_db" => true}) do end def config_show(conn, _params) do - with :ok <- configurable_from_database(conn) do + with :ok <- configurable_from_database() do configs = ConfigDB.get_all_as_keyword() merged = @@ -941,9 +877,11 @@ def config_show(conn, _params) do end def config_update(conn, %{"configs" => configs}) do - with :ok <- configurable_from_database(conn) do + with :ok <- configurable_from_database() do {_errors, results} = - Enum.map(configs, fn + 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"]}) @@ -983,7 +921,7 @@ def config_update(conn, %{"configs" => configs}) do 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, %{}) @@ -994,17 +932,36 @@ 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() @@ -1123,30 +1080,6 @@ def stats(conn, _) do |> 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")) - end - defp page_params(params) do {get_page(params["page"]), get_page_size(params["page_size"])} 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..82965936d --- /dev/null +++ b/lib/pleroma/web/admin_api/controllers/fallback_controller.ex @@ -0,0 +1,31 @@ +# 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, {: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/status_controller.ex b/lib/pleroma/web/admin_api/controllers/status_controller.ex new file mode 100644 index 000000000..08cb9c10b --- /dev/null +++ b/lib/pleroma/web/admin_api/controllers/status_controller.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.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 + conn + |> put_view(MastodonAPI.StatusView) + |> render("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 29cea1f44..c28efadd5 100644 --- a/lib/pleroma/web/admin_api/search.ex +++ b/lib/pleroma/web/admin_api/search.ex @@ -21,6 +21,7 @@ def user(params \\ %{}) do query = params |> Map.drop([:page, :page_size]) + |> Map.put(:exclude_service_users, true) |> User.Query.build() |> order_by([u], u.nickname) diff --git a/lib/pleroma/web/admin_api/views/account_view.ex b/lib/pleroma/web/admin_api/views/account_view.ex index a16a3ebf0..46dadb5ee 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 @@ -119,6 +121,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/report_view.ex b/lib/pleroma/web/admin_api/views/report_view.ex index d50969b2a..f432b8c2c 100644 --- a/lib/pleroma/web/admin_api/views/report_view.ex +++ b/lib/pleroma/web/admin_api/views/report_view.ex @@ -7,10 +7,13 @@ 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: @@ -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.ex b/lib/pleroma/web/api_spec.ex index b3c1e3ea2..79fd5f871 100644 --- a/lib/pleroma/web/api_spec.ex +++ b/lib/pleroma/web/api_spec.ex @@ -39,7 +39,12 @@ def spec do password: %OpenApiSpex.OAuthFlow{ authorizationUrl: "/oauth/authorize", tokenUrl: "/oauth/token", - scopes: %{"read" => "read", "write" => "write", "follow" => "follow"} + scopes: %{ + "read" => "read", + "write" => "write", + "follow" => "follow", + "push" => "push" + } } } } diff --git a/lib/pleroma/web/api_spec/cast_and_validate.ex b/lib/pleroma/web/api_spec/cast_and_validate.ex new file mode 100644 index 000000000..bd9026237 --- /dev/null +++ b/lib/pleroma/web/api_spec/cast_and_validate.ex @@ -0,0 +1,139 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2019-2020 Moxley Stratton, Mike Buhot , MPL-2.0 +# Copyright © 2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.CastAndValidate do + @moduledoc """ + This plug is based on [`OpenApiSpex.Plug.CastAndValidate`] + (https://github.com/open-api-spex/open_api_spex/blob/master/lib/open_api_spex/plug/cast_and_validate.ex). + The main difference is ignoring unexpected query params instead of throwing + an error and a config option (`[Pleroma.Web.ApiSpec.CastAndValidate, :strict]`) + to disable this behavior. Also, the default rendering error module + is `Pleroma.Web.ApiSpec.RenderError`. + """ + + @behaviour Plug + + alias Plug.Conn + + @impl Plug + def init(opts) do + opts + |> Map.new() + |> Map.put_new(:render_error, Pleroma.Web.ApiSpec.RenderError) + end + + @impl Plug + def call(%{private: %{open_api_spex: private_data}} = conn, %{ + operation_id: operation_id, + render_error: render_error + }) do + spec = private_data.spec + operation = private_data.operation_lookup[operation_id] + + content_type = + case Conn.get_req_header(conn, "content-type") do + [header_value | _] -> + header_value + |> String.split(";") + |> List.first() + + _ -> + nil + end + + private_data = Map.put(private_data, :operation_id, operation_id) + conn = Conn.put_private(conn, :open_api_spex, private_data) + + case cast_and_validate(spec, operation, conn, content_type, strict?()) do + {:ok, conn} -> + conn + + {:error, reason} -> + opts = render_error.init(reason) + + conn + |> render_error.call(opts) + |> Plug.Conn.halt() + end + end + + def call( + %{ + private: %{ + phoenix_controller: controller, + phoenix_action: action, + open_api_spex: private_data + } + } = conn, + opts + ) do + operation = + case private_data.operation_lookup[{controller, action}] do + nil -> + operation_id = controller.open_api_operation(action).operationId + operation = private_data.operation_lookup[operation_id] + + operation_lookup = + private_data.operation_lookup + |> Map.put({controller, action}, operation) + + OpenApiSpex.Plug.Cache.adapter().put( + private_data.spec_module, + {private_data.spec, operation_lookup} + ) + + operation + + operation -> + operation + end + + if operation.operationId do + call(conn, Map.put(opts, :operation_id, operation.operationId)) + else + raise "operationId was not found in action API spec" + end + end + + def call(conn, opts), do: OpenApiSpex.Plug.CastAndValidate.call(conn, opts) + + defp cast_and_validate(spec, operation, conn, content_type, true = _strict) do + OpenApiSpex.cast_and_validate(spec, operation, conn, content_type) + end + + defp cast_and_validate(spec, operation, conn, content_type, false = _strict) do + case OpenApiSpex.cast_and_validate(spec, operation, conn, content_type) do + {:ok, conn} -> + {:ok, conn} + + # Remove unexpected query params and cast/validate again + {:error, errors} -> + query_params = + Enum.reduce(errors, conn.query_params, fn + %{reason: :unexpected_field, name: name, path: [name]}, params -> + Map.delete(params, name) + + %{reason: :invalid_enum, name: nil, path: path, value: value}, params -> + path = path |> Enum.reverse() |> tl() |> Enum.reverse() |> list_items_to_string() + update_in(params, path, &List.delete(&1, value)) + + _, params -> + params + end) + + conn = %Conn{conn | query_params: query_params} + OpenApiSpex.cast_and_validate(spec, operation, conn, content_type) + end + end + + defp list_items_to_string(list) do + Enum.map(list, fn + i when is_atom(i) -> to_string(i) + i -> i + end) + end + + defp strict?, do: Pleroma.Config.get([__MODULE__, :strict], false) +end diff --git a/lib/pleroma/web/api_spec/helpers.ex b/lib/pleroma/web/api_spec/helpers.ex index 183df43ee..a9cfe0fed 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"] @@ -47,6 +48,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 @@ -54,4 +64,8 @@ def empty_object_response do def empty_array_response do Operation.response("Empty array", "application/json", %Schema{type: :array, example: []}) end + + def no_content_response do + Operation.response("No Content", "application/json", %Schema{type: :string, example: ""}) + end end diff --git a/lib/pleroma/web/api_spec/operations/account_operation.ex b/lib/pleroma/web/api_spec/operations/account_operation.ex index fe9548b1b..20572f8ea 100644 --- a/lib/pleroma/web/api_spec/operations/account_operation.ex +++ b/lib/pleroma/web/api_spec/operations/account_operation.ex @@ -11,6 +11,7 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do alias Pleroma.Web.ApiSpec.Schemas.ActorType alias Pleroma.Web.ApiSpec.Schemas.ApiError alias Pleroma.Web.ApiSpec.Schemas.BooleanLike + alias Pleroma.Web.ApiSpec.Schemas.List alias Pleroma.Web.ApiSpec.Schemas.Status alias Pleroma.Web.ApiSpec.Schemas.VisibilityScope @@ -154,8 +155,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()) } @@ -170,8 +173,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 @@ -366,15 +371,18 @@ defp create_request do title: "AccountCreateRequest", description: "POST body for creating an account", type: :object, + required: [:username, :password, :agreement], properties: %{ reason: %Schema{ type: :string, + nullable: true, description: "Text that will be reviewed by moderators if registrations require manual approval" }, username: %Schema{type: :string, description: "The desired username for the account"}, email: %Schema{ type: :string, + nullable: true, description: "The email address to be used for login. Required when `account_activation_required` is enabled.", format: :email @@ -385,29 +393,39 @@ 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." }, locale: %Schema{ type: :string, + nullable: true, description: "The language of the confirmation email that will be sent" }, # Pleroma-specific properties: - fullname: %Schema{type: :string, description: "Full name"}, - bio: %Schema{type: :string, description: "Bio", default: ""}, + fullname: %Schema{type: :string, nullable: true, description: "Full name"}, + bio: %Schema{type: :string, description: "Bio", nullable: true, default: ""}, captcha_solution: %Schema{ type: :string, + nullable: true, description: "Provider-specific captcha solution" }, - captcha_token: %Schema{type: :string, description: "Provider-specific captcha token"}, - captcha_answer_data: %Schema{type: :string, description: "Provider-specific captcha data"}, + captcha_token: %Schema{ + type: :string, + nullable: true, + description: "Provider-specific captcha token" + }, + captcha_answer_data: %Schema{ + type: :string, + nullable: true, + description: "Provider-specific captcha data" + }, token: %Schema{ type: :string, + nullable: true, description: "Invite token required when the registrations aren't public" } }, - required: [:username, :password, :agreement], example: %{ "username" => "cofe", "email" => "cofe@example.com", @@ -445,29 +463,35 @@ defp update_creadentials_request do type: :object, properties: %{ bot: %Schema{ - type: :boolean, + allOf: [BooleanLike], + nullable: true, description: "Whether the account has a bot flag." }, display_name: %Schema{ type: :string, + nullable: true, description: "The display name to use for the profile." }, note: %Schema{type: :string, description: "The account bio."}, avatar: %Schema{ type: :string, + nullable: true, description: "Avatar image encoded using multipart/form-data", format: :binary }, header: %Schema{ type: :string, + nullable: true, description: "Header image encoded using multipart/form-data", format: :binary }, locked: %Schema{ - type: :boolean, + allOf: [BooleanLike], + nullable: true, description: "Whether manual approval of follow requests is required." }, fields_attributes: %Schema{ + nullable: true, oneOf: [ %Schema{type: :array, items: attribute_field()}, %Schema{type: :object, additionalProperties: %Schema{type: attribute_field()}} @@ -486,48 +510,66 @@ 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, description: "user's followers will be hidden"}, - hide_follows: %Schema{type: :boolean, description: "user's follows will be hidden"}, + hide_followers: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "user's followers will be hidden" + }, + hide_follows: %Schema{ + 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" }, default_scope: VisibilityScope, pleroma_settings_store: %Schema{ type: :object, + nullable: true, 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" }, pleroma_background_image: %Schema{ type: :string, + nullable: true, description: "Sets the background image of the user.", format: :binary }, discoverable: %Schema{ - type: :boolean, + allOf: [BooleanLike], + nullable: true, description: "Discovery of this account in search results and other services is allowed." }, @@ -555,11 +597,12 @@ defp update_creadentials_request do } end - defp array_of_accounts do + def array_of_accounts do %Schema{ title: "ArrayOfAccounts", type: :array, - items: Account + items: Account, + example: [Account.schema().example] } end @@ -622,7 +665,7 @@ defp follow_by_uri_request do description: "POST body for muting an account", type: :object, properties: %{ - uri: %Schema{type: :string, format: :uri} + uri: %Schema{type: :string, nullable: true, format: :uri} }, required: [:uri] } @@ -635,7 +678,8 @@ 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 } @@ -646,28 +690,12 @@ defp mute_request do } end - defp list do - %Schema{ - title: "List", - description: "Response schema for a list", - type: :object, - properties: %{ - id: %Schema{type: :string}, - title: %Schema{type: :string} - }, - example: %{ - "id" => "123", - "title" => "my list" - } - } - end - defp array_of_lists do %Schema{ title: "ArrayOfLists", description: "Response schema for lists", type: :array, - items: list(), + items: List, example: [ %{"id" => "123", "title" => "my list"}, %{"id" => "1337", "title" => "anotehr list"} 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..0b138dc79 --- /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 + + defp 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/app_operation.ex b/lib/pleroma/web/api_spec/operations/app_operation.ex index f6ccd073f..ae01cbbec 100644 --- a/lib/pleroma/web/api_spec/operations/app_operation.ex +++ b/lib/pleroma/web/api_spec/operations/app_operation.ex @@ -105,7 +105,11 @@ defp create_request do description: "Space separated list of scopes", default: "read" }, - website: %Schema{type: :string, description: "A URL to the homepage of your app"} + website: %Schema{ + type: :string, + nullable: true, + description: "A URL to the homepage of your app" + } }, required: [:client_name, :redirect_uris], example: %{ diff --git a/lib/pleroma/web/api_spec/operations/conversation_operation.ex b/lib/pleroma/web/api_spec/operations/conversation_operation.ex new file mode 100644 index 000000000..475468893 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/conversation_operation.ex @@ -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.ApiSpec.ConversationOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.Conversation + alias Pleroma.Web.ApiSpec.Schemas.FlakeID + + 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: ["Conversations"], + summary: "Show conversation", + security: [%{"oAuth" => ["read:statuses"]}], + operationId: "ConversationController.index", + parameters: [ + Operation.parameter( + :recipients, + :query, + %Schema{type: :array, items: FlakeID}, + "Only return conversations with the given recipients (a list of user ids)" + ) + | pagination_params() + ], + responses: %{ + 200 => + Operation.response("Array of Conversation", "application/json", %Schema{ + type: :array, + items: Conversation, + example: [Conversation.schema().example] + }) + } + } + end + + def mark_as_read_operation do + %Operation{ + tags: ["Conversations"], + summary: "Mark as read", + operationId: "ConversationController.mark_as_read", + parameters: [ + Operation.parameter(:id, :path, :string, "Conversation ID", + example: "123", + required: true + ) + ], + security: [%{"oAuth" => ["write:conversations"]}], + responses: %{ + 200 => Operation.response("Conversation", "application/json", Conversation) + } + } + 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 new file mode 100644 index 000000000..31e576f99 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/filter_operation.ex @@ -0,0 +1,230 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +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") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + tags: ["apps"], + summary: "View all filters", + operationId: "FilterController.index", + security: [%{"oAuth" => ["read:filters"]}], + responses: %{ + 200 => Operation.response("Filters", "application/json", array_of_filters()) + } + } + end + + def create_operation do + %Operation{ + tags: ["apps"], + summary: "Create a filter", + operationId: "FilterController.create", + requestBody: Helpers.request_body("Parameters", create_request(), required: true), + security: [%{"oAuth" => ["write:filters"]}], + responses: %{200 => Operation.response("Filter", "application/json", filter())} + } + end + + def show_operation do + %Operation{ + tags: ["apps"], + summary: "View all filters", + parameters: [id_param()], + operationId: "FilterController.show", + security: [%{"oAuth" => ["read:filters"]}], + responses: %{ + 200 => Operation.response("Filter", "application/json", filter()) + } + } + end + + def update_operation do + %Operation{ + tags: ["apps"], + summary: "Update a filter", + parameters: [id_param()], + operationId: "FilterController.update", + requestBody: Helpers.request_body("Parameters", update_request(), required: true), + security: [%{"oAuth" => ["write:filters"]}], + responses: %{ + 200 => Operation.response("Filter", "application/json", filter()) + } + } + end + + def delete_operation do + %Operation{ + tags: ["apps"], + summary: "Remove a filter", + parameters: [id_param()], + operationId: "FilterController.delete", + security: [%{"oAuth" => ["write:filters"]}], + responses: %{ + 200 => + Operation.response("Filter", "application/json", %Schema{ + type: :object, + description: "Empty object" + }) + } + } + end + + defp id_param do + Operation.parameter(:id, :path, :string, "Filter ID", example: "123", required: true) + end + + defp filter do + %Schema{ + title: "Filter", + type: :object, + properties: %{ + id: %Schema{type: :string}, + phrase: %Schema{type: :string, description: "The text to be filtered"}, + context: %Schema{ + type: :array, + items: %Schema{type: :string, enum: ["home", "notifications", "public", "thread"]}, + description: "The contexts in which the filter should be applied." + }, + expires_at: %Schema{ + type: :string, + format: :"date-time", + description: + "When the filter should no longer be applied. String (ISO 8601 Datetime), or null if the filter does not expire.", + nullable: true + }, + irreversible: %Schema{ + type: :boolean, + description: + "Should matching entities in home and notifications be dropped by the server?" + }, + whole_word: %Schema{ + type: :boolean, + description: "Should the filter consider word boundaries?" + } + }, + example: %{ + "id" => "5580", + "phrase" => "@twitter.com", + "context" => [ + "home", + "notifications", + "public", + "thread" + ], + "whole_word" => false, + "expires_at" => nil, + "irreversible" => true + } + } + end + + defp array_of_filters do + %Schema{ + title: "ArrayOfFilters", + description: "Array of Filters", + type: :array, + items: filter(), + example: [ + %{ + "id" => "5580", + "phrase" => "@twitter.com", + "context" => [ + "home", + "notifications", + "public", + "thread" + ], + "whole_word" => false, + "expires_at" => nil, + "irreversible" => true + }, + %{ + "id" => "6191", + "phrase" => ":eurovision2019:", + "context" => [ + "home" + ], + "whole_word" => true, + "expires_at" => "2019-05-21T13:47:31.333Z", + "irreversible" => false + } + ] + } + end + + defp create_request do + %Schema{ + title: "FilterCreateRequest", + allOf: [ + update_request(), + %Schema{ + type: :object, + properties: %{ + irreversible: %Schema{ + allOf: [BooleanLike], + description: + "Should the server irreversibly drop matching entities from home and notifications?", + default: false + } + } + } + ], + example: %{ + "phrase" => "knights", + "context" => ["home"] + } + } + end + + defp update_request do + %Schema{ + title: "FilterUpdateRequest", + type: :object, + properties: %{ + phrase: %Schema{type: :string, description: "The text to be filtered"}, + context: %Schema{ + type: :array, + items: %Schema{type: :string, enum: ["home", "notifications", "public", "thread"]}, + description: + "Array of enumerable strings `home`, `notifications`, `public`, `thread`. At least one context must be specified." + }, + irreversible: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: + "Should the server irreversibly drop matching entities from home and notifications?" + }, + whole_word: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Consider word boundaries?", + default: true + } + # TODO: probably should implement filter expiration + # expires_in: %Schema{ + # type: :string, + # format: :"date-time", + # description: + # "ISO 8601 Datetime for when the filter expires. Otherwise, + # null for a filter that doesn't expire." + # } + }, + required: [:phrase, :context], + example: %{ + "phrase" => "knights", + "context" => ["home"] + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/follow_request_operation.ex b/lib/pleroma/web/api_spec/operations/follow_request_operation.ex new file mode 100644 index 000000000..ac4aee6da --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/follow_request_operation.ex @@ -0,0 +1,65 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.FollowRequestOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.Account + alias Pleroma.Web.ApiSpec.Schemas.AccountRelationship + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + tags: ["Follow Requests"], + summary: "Pending Follows", + security: [%{"oAuth" => ["read:follows", "follow"]}], + operationId: "FollowRequestController.index", + responses: %{ + 200 => + Operation.response("Array of Account", "application/json", %Schema{ + type: :array, + items: Account, + example: [Account.schema().example] + }) + } + } + end + + def authorize_operation do + %Operation{ + tags: ["Follow Requests"], + summary: "Accept Follow", + operationId: "FollowRequestController.authorize", + parameters: [id_param()], + security: [%{"oAuth" => ["follow", "write:follows"]}], + responses: %{ + 200 => Operation.response("Relationship", "application/json", AccountRelationship) + } + } + end + + def reject_operation do + %Operation{ + tags: ["Follow Requests"], + summary: "Reject Follow", + operationId: "FollowRequestController.reject", + parameters: [id_param()], + security: [%{"oAuth" => ["follow", "write:follows"]}], + responses: %{ + 200 => Operation.response("Relationship", "application/json", AccountRelationship) + } + } + end + + defp id_param do + Operation.parameter(:id, :path, :string, "Conversation ID", + example: "123", + required: true + ) + end +end diff --git a/lib/pleroma/web/api_spec/operations/instance_operation.ex b/lib/pleroma/web/api_spec/operations/instance_operation.ex new file mode 100644 index 000000000..d5c335d0c --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/instance_operation.ex @@ -0,0 +1,175 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.InstanceOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def show_operation do + %Operation{ + tags: ["Instance"], + summary: "Fetch instance", + description: "Information about the server", + operationId: "InstanceController.show", + responses: %{ + 200 => Operation.response("Instance", "application/json", instance()) + } + } + end + + def peers_operation do + %Operation{ + tags: ["Instance"], + summary: "List of known hosts", + operationId: "InstanceController.peers", + responses: %{ + 200 => Operation.response("Array of domains", "application/json", array_of_domains()) + } + } + end + + defp instance do + %Schema{ + type: :object, + properties: %{ + uri: %Schema{type: :string, description: "The domain name of the instance"}, + title: %Schema{type: :string, description: "The title of the website"}, + description: %Schema{ + type: :string, + description: "Admin-defined description of the Pleroma site" + }, + version: %Schema{ + type: :string, + description: "The version of Pleroma installed on the instance" + }, + email: %Schema{ + type: :string, + description: "An email that may be contacted for any inquiries", + format: :email + }, + urls: %Schema{ + type: :object, + description: "URLs of interest for clients apps", + properties: %{ + streaming_api: %Schema{ + type: :string, + description: "Websockets address for push streaming" + } + } + }, + stats: %Schema{ + type: :object, + description: "Statistics about how much information the instance contains", + properties: %{ + user_count: %Schema{ + type: :integer, + description: "Users registered on this instance" + }, + status_count: %Schema{ + type: :integer, + description: "Statuses authored by users on instance" + }, + domain_count: %Schema{ + type: :integer, + description: "Domains federated with this instance" + } + } + }, + thumbnail: %Schema{ + type: :string, + description: "Banner image for the website", + nullable: true + }, + languages: %Schema{ + type: :array, + items: %Schema{type: :string}, + description: "Primary langauges of the website and its staff" + }, + registrations: %Schema{type: :boolean, description: "Whether registrations are enabled"}, + # Extra (not present in Mastodon): + max_toot_chars: %Schema{ + type: :integer, + description: ": Posts character limit (CW/Subject included in the counter)" + }, + poll_limits: %Schema{ + type: :object, + description: "A map with poll limits for local polls", + properties: %{ + max_options: %Schema{ + type: :integer, + description: "Maximum number of options." + }, + max_option_chars: %Schema{ + type: :integer, + description: "Maximum number of characters per option." + }, + min_expiration: %Schema{ + type: :integer, + description: "Minimum expiration time (in seconds)." + }, + max_expiration: %Schema{ + type: :integer, + description: "Maximum expiration time (in seconds)." + } + } + }, + upload_limit: %Schema{ + type: :integer, + description: "File size limit of uploads (except for avatar, background, banner)" + }, + 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"}, + 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", + "email" => "lain@lain.com", + "languages" => ["en"], + "max_toot_chars" => 5000, + "poll_limits" => %{ + "max_expiration" => 31_536_000, + "max_option_chars" => 200, + "max_options" => 20, + "min_expiration" => 0 + }, + "registrations" => false, + "stats" => %{ + "domain_count" => 2996, + "status_count" => 15_802, + "user_count" => 5 + }, + "thumbnail" => "https://lain.com/instance/thumbnail.jpeg", + "title" => "lain.com", + "upload_limit" => 16_000_000, + "uri" => "https://lain.com", + "urls" => %{ + "streaming_api" => "wss://lain.com" + }, + "version" => "2.7.2 (compatible; Pleroma 2.0.50-536-g25eec6d7-develop)" + } + } + end + + defp array_of_domains do + %Schema{ + type: :array, + items: %Schema{type: :string}, + example: ["pleroma.site", "lain.com", "bikeshed.party"] + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/list_operation.ex b/lib/pleroma/web/api_spec/operations/list_operation.ex new file mode 100644 index 000000000..c88ed5dd0 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/list_operation.ex @@ -0,0 +1,188 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.ListOperation 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.List + + 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: ["Lists"], + summary: "Show user's lists", + description: "Fetch all lists that the user owns", + security: [%{"oAuth" => ["read:lists"]}], + operationId: "ListController.index", + responses: %{ + 200 => Operation.response("Array of List", "application/json", array_of_lists()) + } + } + end + + def create_operation do + %Operation{ + tags: ["Lists"], + summary: "Create a list", + description: "Fetch the list with the given ID. Used for verifying the title of a list.", + operationId: "ListController.create", + requestBody: create_update_request(), + security: [%{"oAuth" => ["write:lists"]}], + responses: %{ + 200 => Operation.response("List", "application/json", List), + 400 => Operation.response("Error", "application/json", ApiError), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def show_operation do + %Operation{ + tags: ["Lists"], + summary: "Show a single list", + description: "Fetch the list with the given ID. Used for verifying the title of a list.", + operationId: "ListController.show", + parameters: [id_param()], + security: [%{"oAuth" => ["read:lists"]}], + responses: %{ + 200 => Operation.response("List", "application/json", List), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def update_operation do + %Operation{ + tags: ["Lists"], + summary: "Update a list", + description: "Change the title of a list", + operationId: "ListController.update", + parameters: [id_param()], + requestBody: create_update_request(), + security: [%{"oAuth" => ["write:lists"]}], + responses: %{ + 200 => Operation.response("List", "application/json", List), + 422 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def delete_operation do + %Operation{ + tags: ["Lists"], + summary: "Delete a list", + operationId: "ListController.delete", + parameters: [id_param()], + security: [%{"oAuth" => ["write:lists"]}], + responses: %{ + 200 => Operation.response("Empty object", "application/json", %Schema{type: :object}) + } + } + end + + def list_accounts_operation do + %Operation{ + tags: ["Lists"], + summary: "View accounts in list", + operationId: "ListController.list_accounts", + parameters: [id_param()], + security: [%{"oAuth" => ["read:lists"]}], + responses: %{ + 200 => + Operation.response("Array of Account", "application/json", %Schema{ + type: :array, + items: Account + }) + } + } + end + + def add_to_list_operation do + %Operation{ + tags: ["Lists"], + summary: "Add accounts to list", + description: "Add accounts to the given list.", + operationId: "ListController.add_to_list", + parameters: [id_param()], + requestBody: add_remove_accounts_request(), + security: [%{"oAuth" => ["write:lists"]}], + responses: %{ + 200 => Operation.response("Empty object", "application/json", %Schema{type: :object}) + } + } + end + + def remove_from_list_operation do + %Operation{ + tags: ["Lists"], + summary: "Remove accounts from list", + operationId: "ListController.remove_from_list", + parameters: [id_param()], + requestBody: add_remove_accounts_request(), + security: [%{"oAuth" => ["write:lists"]}], + responses: %{ + 200 => Operation.response("Empty object", "application/json", %Schema{type: :object}) + } + } + end + + defp array_of_lists do + %Schema{ + title: "ArrayOfLists", + description: "Response schema for lists", + type: :array, + items: List, + example: [ + %{"id" => "123", "title" => "my list"}, + %{"id" => "1337", "title" => "another list"} + ] + } + end + + defp id_param do + Operation.parameter(:id, :path, :string, "List ID", + example: "123", + required: true + ) + end + + defp create_update_request do + request_body( + "Parameters", + %Schema{ + description: "POST body for creating or updating a List", + type: :object, + properties: %{ + title: %Schema{type: :string, description: "List title"} + }, + required: [:title] + }, + required: true + ) + end + + defp add_remove_accounts_request do + request_body( + "Parameters", + %Schema{ + description: "POST body for adding/removing accounts to/from a List", + type: :object, + properties: %{ + account_ids: %Schema{type: :array, description: "Array of account IDs", items: FlakeID} + }, + required: [:account_ids] + }, + required: true + ) + end +end diff --git a/lib/pleroma/web/api_spec/operations/marker_operation.ex b/lib/pleroma/web/api_spec/operations/marker_operation.ex new file mode 100644 index 000000000..714ef1f99 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/marker_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.MarkerOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias 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: ["Markers"], + summary: "Get saved timeline position", + security: [%{"oAuth" => ["read:statuses"]}], + operationId: "MarkerController.index", + parameters: [ + Operation.parameter( + :timeline, + :query, + %Schema{ + type: :array, + items: %Schema{type: :string, enum: ["home", "notifications"]} + }, + "Array of markers to fetch. If not provided, an empty object will be returned." + ) + ], + responses: %{ + 200 => Operation.response("Marker", "application/json", response()), + 403 => Operation.response("Error", "application/json", api_error()) + } + } + end + + def upsert_operation do + %Operation{ + tags: ["Markers"], + summary: "Save position in timeline", + operationId: "MarkerController.upsert", + requestBody: Helpers.request_body("Parameters", upsert_request(), required: true), + security: [%{"oAuth" => ["follow", "write:blocks"]}], + responses: %{ + 200 => Operation.response("Marker", "application/json", response()), + 403 => Operation.response("Error", "application/json", api_error()) + } + } + end + + defp marker do + %Schema{ + title: "Marker", + description: "Schema for a marker", + type: :object, + properties: %{ + last_read_id: %Schema{type: :string}, + version: %Schema{type: :integer}, + updated_at: %Schema{type: :string}, + pleroma: %Schema{ + type: :object, + properties: %{ + unread_count: %Schema{type: :integer} + } + } + }, + example: %{ + "last_read_id" => "35098814", + "version" => 361, + "updated_at" => "2019-11-26T22:37:25.239Z", + "pleroma" => %{"unread_count" => 5} + } + } + end + + defp response do + %Schema{ + title: "MarkersResponse", + description: "Response schema for markers", + type: :object, + properties: %{ + notifications: %Schema{allOf: [marker()], nullable: true}, + home: %Schema{allOf: [marker()], nullable: true} + }, + items: %Schema{type: :string}, + example: %{ + "notifications" => %{ + "last_read_id" => "35098814", + "version" => 361, + "updated_at" => "2019-11-26T22:37:25.239Z", + "pleroma" => %{"unread_count" => 0} + }, + "home" => %{ + "last_read_id" => "103206604258487607", + "version" => 468, + "updated_at" => "2019-11-26T22:37:25.235Z", + "pleroma" => %{"unread_count" => 10} + } + } + } + end + + defp upsert_request do + %Schema{ + title: "MarkersUpsertRequest", + description: "Request schema for marker upsert", + type: :object, + properties: %{ + notifications: %Schema{ + type: :object, + nullable: true, + properties: %{ + last_read_id: %Schema{nullable: true, type: :string} + } + }, + home: %Schema{ + type: :object, + nullable: true, + properties: %{ + last_read_id: %Schema{nullable: true, type: :string} + } + } + }, + example: %{ + "home" => %{ + "last_read_id" => "103194548672408537", + "version" => 462, + "updated_at" => "2019-11-24T19:39:39.337Z" + } + } + } + end + + defp api_error do + %Schema{ + type: :object, + properties: %{error: %Schema{type: :string}} + } + end +end 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..46e72f8bf 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", diff --git a/lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex new file mode 100644 index 000000000..90922c064 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex @@ -0,0 +1,187 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.PleromaAccountOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.AccountRelationship + alias Pleroma.Web.ApiSpec.Schemas.ApiError + 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 confirmation_resend_operation do + %Operation{ + tags: ["Accounts"], + summary: "Resend confirmation email. Expects `email` or `nickname`", + operationId: "PleromaAPI.AccountController.confirmation_resend", + parameters: [ + Operation.parameter(:email, :query, :string, "Email of that needs to be verified", + example: "cofe@cofe.io" + ), + Operation.parameter( + :nickname, + :query, + :string, + "Nickname of user that needs to be verified", + example: "cofefe" + ) + ], + responses: %{ + 204 => no_content_response() + } + } + end + + def update_avatar_operation do + %Operation{ + tags: ["Accounts"], + summary: "Set/clear user avatar image", + operationId: "PleromaAPI.AccountController.update_avatar", + requestBody: + request_body("Parameters", update_avatar_or_background_request(), required: true), + security: [%{"oAuth" => ["write:accounts"]}], + responses: %{ + 200 => update_response(), + 403 => Operation.response("Forbidden", "application/json", ApiError) + } + } + end + + def update_banner_operation do + %Operation{ + tags: ["Accounts"], + summary: "Set/clear user banner image", + operationId: "PleromaAPI.AccountController.update_banner", + requestBody: request_body("Parameters", update_banner_request(), required: true), + security: [%{"oAuth" => ["write:accounts"]}], + responses: %{ + 200 => update_response() + } + } + end + + def update_background_operation do + %Operation{ + tags: ["Accounts"], + summary: "Set/clear user background image", + operationId: "PleromaAPI.AccountController.update_background", + security: [%{"oAuth" => ["write:accounts"]}], + requestBody: + request_body("Parameters", update_avatar_or_background_request(), required: true), + responses: %{ + 200 => update_response() + } + } + end + + def favourites_operation do + %Operation{ + tags: ["Accounts"], + summary: "Returns favorites timeline of any user", + operationId: "PleromaAPI.AccountController.favourites", + parameters: [id_param() | pagination_params()], + security: [%{"oAuth" => ["read:favourites"]}], + responses: %{ + 200 => + Operation.response( + "Array of Statuses", + "application/json", + StatusOperation.array_of_statuses() + ), + 403 => Operation.response("Forbidden", "application/json", ApiError), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def subscribe_operation do + %Operation{ + tags: ["Accounts"], + summary: "Subscribe to receive notifications for all statuses posted by a user", + operationId: "PleromaAPI.AccountController.subscribe", + parameters: [id_param()], + security: [%{"oAuth" => ["follow", "write:follows"]}], + responses: %{ + 200 => Operation.response("Relationship", "application/json", AccountRelationship), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def unsubscribe_operation do + %Operation{ + tags: ["Accounts"], + summary: "Unsubscribe to stop receiving notifications from user statuses", + operationId: "PleromaAPI.AccountController.unsubscribe", + parameters: [id_param()], + security: [%{"oAuth" => ["follow", "write:follows"]}], + responses: %{ + 200 => Operation.response("Relationship", "application/json", AccountRelationship), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + defp id_param do + Operation.parameter(:id, :path, FlakeID, "Account ID", + example: "9umDrYheeY451cQnEe", + required: true + ) + end + + defp update_avatar_or_background_request do + %Schema{ + title: "PleromaAccountUpdateAvatarOrBackgroundRequest", + type: :object, + properties: %{ + img: %Schema{ + nullable: true, + type: :string, + format: :binary, + description: "Image encoded using `multipart/form-data` or an empty string to clear" + } + } + } + end + + defp update_banner_request do + %Schema{ + title: "PleromaAccountUpdateBannerRequest", + type: :object, + properties: %{ + banner: %Schema{ + type: :string, + nullable: true, + format: :binary, + description: "Image encoded using `multipart/form-data` or an empty string to clear" + } + } + } + end + + defp update_response do + Operation.response("PleromaAccountUpdateResponse", "application/json", %Schema{ + type: :object, + properties: %{ + url: %Schema{ + type: :string, + format: :uri, + nullable: true, + description: "Image URL" + } + }, + example: %{ + "url" => + "https://cofe.party/media/9d0add56-bcb6-4c0f-8225-cbbd0b6dd773/13eadb6972c9ccd3f4ffa3b8196f0e0d38b4d2f27594457c52e52946c054cd9a.gif" + } + }) + end +end 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..567688ff5 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/pleroma_emoji_pack_operation.ex @@ -0,0 +1,390 @@ +# 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", + 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()], + 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/poll_operation.ex b/lib/pleroma/web/api_spec/operations/poll_operation.ex new file mode 100644 index 000000000..e15c7dc95 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/poll_operation.ex @@ -0,0 +1,76 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.PollOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.FlakeID + alias Pleroma.Web.ApiSpec.Schemas.Poll + + 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: ["Polls"], + summary: "View a poll", + security: [%{"oAuth" => ["read:statuses"]}], + parameters: [id_param()], + operationId: "PollController.show", + responses: %{ + 200 => Operation.response("Poll", "application/json", Poll), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def vote_operation do + %Operation{ + tags: ["Polls"], + summary: "Vote on a poll", + parameters: [id_param()], + operationId: "PollController.vote", + requestBody: vote_request(), + security: [%{"oAuth" => ["write:statuses"]}], + responses: %{ + 200 => Operation.response("Poll", "application/json", Poll), + 422 => Operation.response("Error", "application/json", ApiError), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + defp id_param do + Operation.parameter(:id, :path, FlakeID, "Poll ID", + example: "123", + required: true + ) + end + + defp vote_request do + request_body( + "Parameters", + %Schema{ + type: :object, + properties: %{ + choices: %Schema{ + type: :array, + items: %Schema{type: :integer}, + description: "Array of own votes containing index for each option (starting from 0)" + } + }, + required: [:choices] + }, + required: true, + example: %{ + "choices" => [0, 1, 2] + } + ) + 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 da4d50703..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") @@ -37,15 +38,18 @@ defp create_request do account_id: %Schema{type: :string, description: "ID of the account to report"}, status_ids: %Schema{ type: :array, + nullable: true, items: %Schema{type: :string}, description: "Array of Statuses to attach to the report, for context" }, comment: %Schema{ type: :string, + nullable: true, description: "Reason for the report" }, forward: %Schema{ - type: :boolean, + allOf: [BooleanLike], + nullable: true, default: false, description: "If the account is remote, should the report be forwarded to the remote admin?" diff --git a/lib/pleroma/web/api_spec/operations/scheduled_activity_operation.ex b/lib/pleroma/web/api_spec/operations/scheduled_activity_operation.ex new file mode 100644 index 000000000..fe675a923 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/scheduled_activity_operation.ex @@ -0,0 +1,96 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.ScheduledActivityOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.FlakeID + alias Pleroma.Web.ApiSpec.Schemas.ScheduledStatus + + 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: ["Scheduled Statuses"], + summary: "View scheduled statuses", + security: [%{"oAuth" => ["read:statuses"]}], + parameters: pagination_params(), + operationId: "ScheduledActivity.index", + responses: %{ + 200 => + Operation.response("Array of ScheduledStatus", "application/json", %Schema{ + type: :array, + items: ScheduledStatus + }) + } + } + end + + def show_operation do + %Operation{ + tags: ["Scheduled Statuses"], + summary: "View a single scheduled status", + security: [%{"oAuth" => ["read:statuses"]}], + parameters: [id_param()], + operationId: "ScheduledActivity.show", + responses: %{ + 200 => Operation.response("Scheduled Status", "application/json", ScheduledStatus), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def update_operation do + %Operation{ + tags: ["Scheduled Statuses"], + summary: "Schedule a status", + operationId: "ScheduledActivity.update", + security: [%{"oAuth" => ["write:statuses"]}], + parameters: [id_param()], + requestBody: + request_body("Parameters", %Schema{ + type: :object, + properties: %{ + scheduled_at: %Schema{ + type: :string, + format: :"date-time", + description: + "ISO 8601 Datetime at which the status will be published. Must be at least 5 minutes into the future." + } + } + }), + responses: %{ + 200 => Operation.response("Scheduled Status", "application/json", ScheduledStatus), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def delete_operation do + %Operation{ + tags: ["Scheduled Statuses"], + summary: "Cancel a scheduled status", + security: [%{"oAuth" => ["write:statuses"]}], + parameters: [id_param()], + operationId: "ScheduledActivity.delete", + responses: %{ + 200 => Operation.response("Empty object", "application/json", %Schema{type: :object}), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + defp id_param do + Operation.parameter(:id, :path, FlakeID, "Poll ID", + example: "123", + required: true + ) + end +end diff --git a/lib/pleroma/web/api_spec/operations/search_operation.ex b/lib/pleroma/web/api_spec/operations/search_operation.ex new file mode 100644 index 000000000..169c36d87 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/search_operation.ex @@ -0,0 +1,208 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.SearchOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.AccountOperation + alias Pleroma.Web.ApiSpec.Schemas.Account + alias Pleroma.Web.ApiSpec.Schemas.BooleanLike + alias Pleroma.Web.ApiSpec.Schemas.FlakeID + alias Pleroma.Web.ApiSpec.Schemas.Status + alias Pleroma.Web.ApiSpec.Schemas.Tag + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + 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"], + summary: "Search for matching accounts by username or display name", + operationId: "SearchController.account_search", + parameters: [ + Operation.parameter(:q, :query, %Schema{type: :string}, "What to search for", + required: true + ), + Operation.parameter( + :limit, + :query, + %Schema{type: :integer, default: 40}, + "Maximum number of results" + ), + Operation.parameter( + :resolve, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Attempt WebFinger lookup. Use this when `q` is an exact address." + ), + Operation.parameter( + :following, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Only include accounts that the user is following" + ) + ], + responses: %{ + 200 => + Operation.response( + "Array of Account", + "application/json", + AccountOperation.array_of_accounts() + ) + } + } + end + + def search_operation do + %Operation{ + tags: ["Search"], + summary: "Search results", + security: [%{"oAuth" => ["read:search"]}], + operationId: "SearchController.search", + deprecated: true, + parameters: [ + Operation.parameter( + :account_id, + :query, + FlakeID, + "If provided, statuses returned will be authored only by this account" + ), + Operation.parameter( + :type, + :query, + %Schema{type: :string, enum: ["accounts", "hashtags", "statuses"]}, + "Search type" + ), + Operation.parameter(:q, :query, %Schema{type: :string}, "The search query", required: true), + Operation.parameter( + :resolve, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Attempt WebFinger lookup" + ), + Operation.parameter( + :following, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Only include accounts that the user is following" + ), + Operation.parameter( + :offset, + :query, + %Schema{type: :integer}, + "Offset" + ), + with_relationships_param() | pagination_params() + ], + responses: %{ + 200 => Operation.response("Results", "application/json", results()) + } + } + end + + def search2_operation do + %Operation{ + tags: ["Search"], + summary: "Search results", + security: [%{"oAuth" => ["read:search"]}], + operationId: "SearchController.search2", + parameters: [ + Operation.parameter( + :account_id, + :query, + FlakeID, + "If provided, statuses returned will be authored only by this account" + ), + Operation.parameter( + :type, + :query, + %Schema{type: :string, enum: ["accounts", "hashtags", "statuses"]}, + "Search type" + ), + Operation.parameter(:q, :query, %Schema{type: :string}, "What to search for", + required: true + ), + Operation.parameter( + :resolve, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Attempt WebFinger lookup" + ), + Operation.parameter( + :following, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Only include accounts that the user is following" + ), + with_relationships_param() | pagination_params() + ], + responses: %{ + 200 => Operation.response("Results", "application/json", results2()) + } + } + end + + defp results2 do + %Schema{ + title: "SearchResults", + type: :object, + properties: %{ + accounts: %Schema{ + type: :array, + items: Account, + description: "Accounts which match the given query" + }, + statuses: %Schema{ + type: :array, + items: Status, + description: "Statuses which match the given query" + }, + hashtags: %Schema{ + type: :array, + items: Tag, + description: "Hashtags which match the given query" + } + }, + example: %{ + "accounts" => [Account.schema().example], + "statuses" => [Status.schema().example], + "hashtags" => [Tag.schema().example] + } + } + end + + defp results do + %Schema{ + title: "SearchResults", + type: :object, + properties: %{ + accounts: %Schema{ + type: :array, + items: Account, + description: "Accounts which match the given query" + }, + statuses: %Schema{ + type: :array, + items: Status, + description: "Statuses which match the given query" + }, + hashtags: %Schema{ + type: :array, + items: %Schema{type: :string}, + description: "Hashtags which match the given query" + } + }, + example: %{ + "accounts" => [Account.schema().example], + "statuses" => [Status.schema().example], + "hashtags" => ["cofe"] + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/status_operation.ex b/lib/pleroma/web/api_spec/operations/status_operation.ex new file mode 100644 index 000000000..ca9db01e5 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/status_operation.ex @@ -0,0 +1,518 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.StatusOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.AccountOperation + alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.BooleanLike + alias Pleroma.Web.ApiSpec.Schemas.FlakeID + alias Pleroma.Web.ApiSpec.Schemas.ScheduledStatus + alias Pleroma.Web.ApiSpec.Schemas.Status + 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 index_operation do + %Operation{ + tags: ["Statuses"], + summary: "Get multiple statuses by IDs", + security: [%{"oAuth" => ["read:statuses"]}], + parameters: [ + Operation.parameter( + :ids, + :query, + %Schema{type: :array, items: FlakeID}, + "Array of status IDs" + ) + ], + operationId: "StatusController.index", + responses: %{ + 200 => Operation.response("Array of Status", "application/json", array_of_statuses()) + } + } + end + + def create_operation do + %Operation{ + tags: ["Statuses"], + summary: "Publish new status", + security: [%{"oAuth" => ["write:statuses"]}], + description: "Post a new status", + operationId: "StatusController.create", + requestBody: request_body("Parameters", create_request(), required: true), + responses: %{ + 200 => + Operation.response( + "Status. When `scheduled_at` is present, ScheduledStatus is returned instead", + "application/json", + %Schema{oneOf: [Status, ScheduledStatus]} + ), + 422 => Operation.response("Bad Request", "application/json", ApiError) + } + } + end + + def show_operation do + %Operation{ + tags: ["Statuses"], + summary: "View specific status", + description: "View information about a status", + operationId: "StatusController.show", + security: [%{"oAuth" => ["read:statuses"]}], + parameters: [id_param()], + responses: %{ + 200 => status_response(), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def delete_operation do + %Operation{ + tags: ["Statuses"], + summary: "Delete status", + security: [%{"oAuth" => ["write:statuses"]}], + description: "Delete one of your own statuses", + operationId: "StatusController.delete", + parameters: [id_param()], + responses: %{ + 200 => empty_object_response(), + 403 => Operation.response("Forbidden", "application/json", ApiError), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def reblog_operation do + %Operation{ + tags: ["Statuses"], + summary: "Boost", + security: [%{"oAuth" => ["write:statuses"]}], + description: "Share a status", + operationId: "StatusController.reblog", + parameters: [id_param()], + requestBody: + request_body("Parameters", %Schema{ + type: :object, + properties: %{ + visibility: %Schema{allOf: [VisibilityScope], default: "public"} + } + }), + responses: %{ + 200 => status_response(), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def unreblog_operation do + %Operation{ + tags: ["Statuses"], + summary: "Undo boost", + security: [%{"oAuth" => ["write:statuses"]}], + description: "Undo a reshare of a status", + operationId: "StatusController.unreblog", + parameters: [id_param()], + responses: %{ + 200 => status_response(), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def favourite_operation do + %Operation{ + tags: ["Statuses"], + summary: "Favourite", + security: [%{"oAuth" => ["write:favourites"]}], + description: "Add a status to your favourites list", + operationId: "StatusController.favourite", + parameters: [id_param()], + responses: %{ + 200 => status_response(), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def unfavourite_operation do + %Operation{ + tags: ["Statuses"], + summary: "Undo favourite", + security: [%{"oAuth" => ["write:favourites"]}], + description: "Remove a status from your favourites list", + operationId: "StatusController.unfavourite", + parameters: [id_param()], + responses: %{ + 200 => status_response(), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def pin_operation do + %Operation{ + tags: ["Statuses"], + summary: "Pin to profile", + security: [%{"oAuth" => ["write:accounts"]}], + description: "Feature one of your own public statuses at the top of your profile", + operationId: "StatusController.pin", + parameters: [id_param()], + responses: %{ + 200 => status_response(), + 400 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def unpin_operation do + %Operation{ + tags: ["Statuses"], + summary: "Unpin to profile", + security: [%{"oAuth" => ["write:accounts"]}], + description: "Unfeature a status from the top of your profile", + operationId: "StatusController.unpin", + parameters: [id_param()], + responses: %{ + 200 => status_response(), + 400 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def bookmark_operation do + %Operation{ + tags: ["Statuses"], + summary: "Bookmark", + security: [%{"oAuth" => ["write:bookmarks"]}], + description: "Privately bookmark a status", + operationId: "StatusController.bookmark", + parameters: [id_param()], + responses: %{ + 200 => status_response() + } + } + end + + def unbookmark_operation do + %Operation{ + tags: ["Statuses"], + summary: "Undo bookmark", + security: [%{"oAuth" => ["write:bookmarks"]}], + description: "Remove a status from your private bookmarks", + operationId: "StatusController.unbookmark", + parameters: [id_param()], + responses: %{ + 200 => status_response() + } + } + end + + def mute_conversation_operation do + %Operation{ + tags: ["Statuses"], + summary: "Mute conversation", + security: [%{"oAuth" => ["write:mutes"]}], + description: "Do not receive notifications for the thread that this status is part of.", + operationId: "StatusController.mute_conversation", + parameters: [id_param()], + responses: %{ + 200 => status_response(), + 400 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def unmute_conversation_operation do + %Operation{ + tags: ["Statuses"], + summary: "Unmute conversation", + security: [%{"oAuth" => ["write:mutes"]}], + description: + "Start receiving notifications again for the thread that this status is part of", + operationId: "StatusController.unmute_conversation", + parameters: [id_param()], + responses: %{ + 200 => status_response(), + 400 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def card_operation do + %Operation{ + tags: ["Statuses"], + deprecated: true, + summary: "Preview card", + description: "Deprecated in favor of card property inlined on Status entity", + operationId: "StatusController.card", + parameters: [id_param()], + security: [%{"oAuth" => ["read:statuses"]}], + responses: %{ + 200 => + Operation.response("Card", "application/json", %Schema{ + type: :object, + nullable: true, + properties: %{ + type: %Schema{type: :string, enum: ["link", "photo", "video", "rich"]}, + provider_name: %Schema{type: :string, nullable: true}, + provider_url: %Schema{type: :string, format: :uri}, + url: %Schema{type: :string, format: :uri}, + image: %Schema{type: :string, nullable: true, format: :uri}, + title: %Schema{type: :string}, + description: %Schema{type: :string} + } + }) + } + } + end + + def favourited_by_operation do + %Operation{ + tags: ["Statuses"], + summary: "Favourited by", + description: "View who favourited a given status", + operationId: "StatusController.favourited_by", + security: [%{"oAuth" => ["read:accounts"]}], + parameters: [id_param()], + responses: %{ + 200 => + Operation.response( + "Array of Accounts", + "application/json", + AccountOperation.array_of_accounts() + ), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def reblogged_by_operation do + %Operation{ + tags: ["Statuses"], + summary: "Boosted by", + description: "View who boosted a given status", + operationId: "StatusController.reblogged_by", + security: [%{"oAuth" => ["read:accounts"]}], + parameters: [id_param()], + responses: %{ + 200 => + Operation.response( + "Array of Accounts", + "application/json", + AccountOperation.array_of_accounts() + ), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def context_operation do + %Operation{ + tags: ["Statuses"], + summary: "Parent and child statuses", + description: "View statuses above and below this status in the thread", + operationId: "StatusController.context", + security: [%{"oAuth" => ["read:statuses"]}], + parameters: [id_param()], + responses: %{ + 200 => Operation.response("Context", "application/json", context()) + } + } + end + + def favourites_operation do + %Operation{ + tags: ["Statuses"], + summary: "Favourited statuses", + description: "Statuses the user has favourited", + operationId: "StatusController.favourites", + parameters: pagination_params(), + security: [%{"oAuth" => ["read:favourites"]}], + responses: %{ + 200 => Operation.response("Array of Statuses", "application/json", array_of_statuses()) + } + } + end + + def bookmarks_operation do + %Operation{ + tags: ["Statuses"], + summary: "Bookmarked statuses", + description: "Statuses the user has bookmarked", + operationId: "StatusController.bookmarks", + parameters: pagination_params(), + security: [%{"oAuth" => ["read:bookmarks"]}], + responses: %{ + 200 => Operation.response("Array of Statuses", "application/json", array_of_statuses()) + } + } + end + + def array_of_statuses do + %Schema{type: :array, items: Status, example: [Status.schema().example]} + end + + defp create_request do + %Schema{ + title: "StatusCreateRequest", + type: :object, + properties: %{ + status: %Schema{ + type: :string, + nullable: true, + description: + "Text content of the status. If `media_ids` is provided, this becomes optional. Attaching a `poll` is optional while `status` is provided." + }, + media_ids: %Schema{ + nullable: true, + type: :array, + items: %Schema{type: :string}, + description: "Array of Attachment ids to be attached as media." + }, + poll: %Schema{ + nullable: true, + type: :object, + required: [:options], + properties: %{ + options: %Schema{ + type: :array, + items: %Schema{type: :string}, + description: "Array of possible answers. Must be provided with `poll[expires_in]`." + }, + expires_in: %Schema{ + type: :integer, + nullable: true, + description: + "Duration the poll should be open, in seconds. Must be provided with `poll[options]`" + }, + multiple: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Allow multiple choices?" + }, + hide_totals: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Hide vote counts until the poll ends?" + } + } + }, + in_reply_to_id: %Schema{ + nullable: true, + allOf: [FlakeID], + description: "ID of the status being replied to, if status is a reply" + }, + sensitive: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Mark status and attached media as sensitive?" + }, + spoiler_text: %Schema{ + type: :string, + nullable: true, + description: + "Text to be shown as a warning or subject before the actual content. Statuses are generally collapsed behind this field." + }, + scheduled_at: %Schema{ + type: :string, + format: :"date-time", + nullable: true, + description: + "ISO 8601 Datetime at which to schedule a status. Providing this paramter will cause ScheduledStatus to be returned instead of Status. Must be at least 5 minutes in the future." + }, + language: %Schema{ + type: :string, + nullable: true, + description: "ISO 639 language code for this status." + }, + # Pleroma-specific properties: + preview: %Schema{ + 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" + }, + content_type: %Schema{ + type: :string, + nullable: true, + description: + "The MIME type of the status, it is transformed into HTML by the backend. You can get the list of the supported MIME types with the nodeinfo endpoint." + }, + to: %Schema{ + type: :array, + nullable: true, + items: %Schema{type: :string}, + description: + "A list of nicknames (like `lain@soykaf.club` or `lain` on the local server) that will be used to determine who is going to be addressed by this post. Using this will disable the implicit addressing by mentioned names in the `status` body, only the people in the `to` list will be addressed. The normal rules for for post visibility are not affected by this and will still apply" + }, + visibility: %Schema{ + nullable: true, + anyOf: [ + VisibilityScope, + %Schema{type: :string, description: "`list:LIST_ID`", example: "LIST:123"} + ], + description: + "Visibility of the posted status. Besides standard MastoAPI values (`direct`, `private`, `unlisted` or `public`) it can be used to address a List by setting it to `list:LIST_ID`" + }, + expires_in: %Schema{ + nullable: true, + type: :integer, + description: + "The number of seconds the posted activity should expire in. When a posted activity expires it will be deleted from the server, and a delete request for it will be federated. This needs to be longer than an hour." + }, + in_reply_to_conversation_id: %Schema{ + nullable: true, + type: :string, + description: + "Will reply to a given conversation, addressing only the people who are part of the recipient set of that conversation. Sets the visibility to `direct`." + } + }, + example: %{ + "status" => "What time is it?", + "sensitive" => "false", + "poll" => %{ + "options" => ["Cofe", "Adventure"], + "expires_in" => 420 + } + } + } + end + + def id_param do + Operation.parameter(:id, :path, FlakeID, "Status ID", + example: "9umDrYheeY451cQnEe", + required: true + ) + end + + defp status_response do + Operation.response("Status", "application/json", Status) + end + + defp context do + %Schema{ + title: "StatusContext", + description: + "Represents the tree around a given status. Used for reconstructing threads of statuses.", + type: :object, + required: [:ancestors, :descendants], + properties: %{ + ancestors: array_of_statuses(), + descendants: array_of_statuses() + }, + example: %{ + "ancestors" => [Status.schema().example], + "descendants" => [Status.schema().example] + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/subscription_operation.ex b/lib/pleroma/web/api_spec/operations/subscription_operation.ex new file mode 100644 index 000000000..c575a87e6 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/subscription_operation.ex @@ -0,0 +1,227 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.SubscriptionOperation do + alias OpenApiSpex.Operation + 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 + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def create_operation do + %Operation{ + tags: ["Push Subscriptions"], + summary: "Subscribe to push notifications", + description: + "Add a Web Push API subscription to receive notifications. Each access token can have one push subscription. If you create a new subscription, the old subscription is deleted.", + operationId: "SubscriptionController.create", + security: [%{"oAuth" => ["push"]}], + requestBody: Helpers.request_body("Parameters", create_request(), required: true), + responses: %{ + 200 => Operation.response("Push Subscription", "application/json", PushSubscription), + 400 => Operation.response("Error", "application/json", ApiError), + 403 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def show_operation do + %Operation{ + tags: ["Push Subscriptions"], + summary: "Get current subscription", + description: "View the PushSubscription currently associated with this access token.", + operationId: "SubscriptionController.show", + security: [%{"oAuth" => ["push"]}], + responses: %{ + 200 => Operation.response("Push Subscription", "application/json", PushSubscription), + 403 => Operation.response("Error", "application/json", ApiError), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def update_operation do + %Operation{ + tags: ["Push Subscriptions"], + summary: "Change types of notifications", + description: + "Updates the current push subscription. Only the data part can be updated. To change fundamentals, a new subscription must be created instead.", + operationId: "SubscriptionController.update", + security: [%{"oAuth" => ["push"]}], + requestBody: Helpers.request_body("Parameters", update_request(), required: true), + responses: %{ + 200 => Operation.response("Push Subscription", "application/json", PushSubscription), + 403 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def delete_operation do + %Operation{ + tags: ["Push Subscriptions"], + summary: "Remove current subscription", + description: "Removes the current Web Push API subscription.", + operationId: "SubscriptionController.delete", + security: [%{"oAuth" => ["push"]}], + responses: %{ + 200 => Operation.response("Empty object", "application/json", %Schema{type: :object}), + 403 => Operation.response("Error", "application/json", ApiError), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + defp create_request do + %Schema{ + title: "SubscriptionCreateRequest", + description: "POST body for creating a push subscription", + type: :object, + properties: %{ + subscription: %Schema{ + type: :object, + properties: %{ + endpoint: %Schema{ + type: :string, + description: "Endpoint URL that is called when a notification event occurs." + }, + keys: %Schema{ + type: :object, + properties: %{ + p256dh: %Schema{ + type: :string, + description: + "User agent public key. Base64 encoded string of public key of ECDH key using `prime256v1` curve." + }, + auth: %Schema{ + type: :string, + description: "Auth secret. Base64 encoded string of 16 bytes of random data." + } + }, + required: [:p256dh, :auth] + } + }, + required: [:endpoint, :keys] + }, + data: %Schema{ + nullable: true, + type: :object, + properties: %{ + alerts: %Schema{ + nullable: true, + type: :object, + properties: %{ + follow: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Receive follow notifications?" + }, + favourite: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Receive favourite notifications?" + }, + reblog: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Receive reblog notifications?" + }, + mention: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Receive mention notifications?" + }, + poll: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Receive poll notifications?" + } + } + } + } + } + }, + required: [:subscription], + example: %{ + "subscription" => %{ + "endpoint" => "https://example.com/example/1234", + "keys" => %{ + "auth" => "8eDyX_uCN0XRhSbY5hs7Hg==", + "p256dh" => + "BCIWgsnyXDv1VkhqL2P7YRBvdeuDnlwAPT2guNhdIoW3IP7GmHh1SMKPLxRf7x8vJy6ZFK3ol2ohgn_-0yP7QQA=" + } + }, + "data" => %{ + "alerts" => %{ + "follow" => true, + "mention" => true, + "poll" => false + } + } + } + } + end + + defp update_request do + %Schema{ + title: "SubscriptionUpdateRequest", + type: :object, + properties: %{ + data: %Schema{ + nullable: true, + type: :object, + properties: %{ + alerts: %Schema{ + nullable: true, + type: :object, + properties: %{ + follow: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Receive follow notifications?" + }, + favourite: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Receive favourite notifications?" + }, + reblog: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Receive reblog notifications?" + }, + mention: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Receive mention notifications?" + }, + poll: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Receive poll notifications?" + } + } + } + } + } + }, + example: %{ + "data" => %{ + "alerts" => %{ + "follow" => true, + "favourite" => true, + "reblog" => true, + "mention" => true, + "poll" => true + } + } + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/timeline_operation.ex b/lib/pleroma/web/api_spec/operations/timeline_operation.ex new file mode 100644 index 000000000..8e19bace7 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/timeline_operation.ex @@ -0,0 +1,191 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.TimelineOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.BooleanLike + alias Pleroma.Web.ApiSpec.Schemas.Status + 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 home_operation do + %Operation{ + tags: ["Timelines"], + summary: "Home timeline", + description: "View statuses from followed users", + security: [%{"oAuth" => ["read:statuses"]}], + parameters: [ + local_param(), + with_muted_param(), + exclude_visibilities_param(), + reply_visibility_param() | pagination_params() + ], + operationId: "TimelineController.home", + responses: %{ + 200 => Operation.response("Array of Status", "application/json", array_of_statuses()) + } + } + end + + def direct_operation do + %Operation{ + tags: ["Timelines"], + summary: "Direct timeline", + description: + "View statuses with a “direct” privacy, from your account or in your notifications", + deprecated: true, + parameters: [with_muted_param() | pagination_params()], + security: [%{"oAuth" => ["read:statuses"]}], + operationId: "TimelineController.direct", + responses: %{ + 200 => Operation.response("Array of Status", "application/json", array_of_statuses()) + } + } + end + + def public_operation do + %Operation{ + tags: ["Timelines"], + summary: "Public timeline", + security: [%{"oAuth" => ["read:statuses"]}], + parameters: [ + local_param(), + only_media_param(), + with_muted_param(), + exclude_visibilities_param(), + reply_visibility_param() | pagination_params() + ], + operationId: "TimelineController.public", + responses: %{ + 200 => Operation.response("Array of Status", "application/json", array_of_statuses()), + 401 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def hashtag_operation do + %Operation{ + tags: ["Timelines"], + summary: "Hashtag timeline", + description: "View public statuses containing the given hashtag", + security: [%{"oAuth" => ["read:statuses"]}], + parameters: [ + Operation.parameter( + :tag, + :path, + %Schema{type: :string}, + "Content of a #hashtag, not including # symbol.", + required: true + ), + Operation.parameter( + :any, + :query, + %Schema{type: :array, items: %Schema{type: :string}}, + "Statuses that also includes any of these tags" + ), + Operation.parameter( + :all, + :query, + %Schema{type: :array, items: %Schema{type: :string}}, + "Statuses that also includes all of these tags" + ), + Operation.parameter( + :none, + :query, + %Schema{type: :array, items: %Schema{type: :string}}, + "Statuses that do not include these tags" + ), + local_param(), + only_media_param(), + with_muted_param(), + exclude_visibilities_param() | pagination_params() + ], + operationId: "TimelineController.hashtag", + responses: %{ + 200 => Operation.response("Array of Status", "application/json", array_of_statuses()) + } + } + end + + def list_operation do + %Operation{ + tags: ["Timelines"], + summary: "List timeline", + description: "View statuses in the given list timeline", + security: [%{"oAuth" => ["read:lists"]}], + parameters: [ + Operation.parameter( + :list_id, + :path, + %Schema{type: :string}, + "Local ID of the list in the database", + required: true + ), + with_muted_param(), + exclude_visibilities_param() | pagination_params() + ], + operationId: "TimelineController.list", + responses: %{ + 200 => Operation.response("Array of Status", "application/json", array_of_statuses()) + } + } + end + + defp array_of_statuses do + %Schema{ + title: "ArrayOfStatuses", + type: :array, + items: Status, + example: [Status.schema().example] + } + end + + defp local_param do + Operation.parameter( + :local, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Show only local statuses?" + ) + end + + defp with_muted_param do + Operation.parameter(:with_muted, :query, BooleanLike, "Includeactivities by muted users") + end + + defp exclude_visibilities_param do + Operation.parameter( + :exclude_visibilities, + :query, + %Schema{type: :array, items: VisibilityScope}, + "Exclude the statuses with the given visibilities" + ) + end + + defp reply_visibility_param do + Operation.parameter( + :reply_visibility, + :query, + %Schema{type: :string, enum: ["following", "self"]}, + "Filter replies. Possible values: without parameter (default) shows all replies, `following` - replies directed to you or users you follow, `self` - replies directed to you." + ) + end + + defp only_media_param do + Operation.parameter( + :only_media, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Show only statuses with media attached?" + ) + end +end diff --git a/lib/pleroma/web/api_spec/render_error.ex b/lib/pleroma/web/api_spec/render_error.ex index b5877ca9c..d476b8ef3 100644 --- a/lib/pleroma/web/api_spec/render_error.ex +++ b/lib/pleroma/web/api_spec/render_error.ex @@ -17,6 +17,9 @@ def init(opts), do: opts def call(conn, errors) do errors = Enum.map(errors, fn + %{name: nil, reason: :invalid_enum} = err -> + %OpenApiSpex.Cast.Error{err | name: err.value} + %{name: nil} = err -> %OpenApiSpex.Cast.Error{err | name: List.last(err.path)} diff --git a/lib/pleroma/web/api_spec/schemas/attachment.ex b/lib/pleroma/web/api_spec/schemas/attachment.ex new file mode 100644 index 000000000..c6edf6d36 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/attachment.ex @@ -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.ApiSpec.Schemas.Attachment do + alias OpenApiSpex.Schema + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "Attachment", + description: "Represents a file or media attachment that can be added to a status.", + type: :object, + requried: [:id, :url, :preview_url], + properties: %{ + id: %Schema{type: :string, description: "The ID of the attachment in the database."}, + url: %Schema{ + type: :string, + format: :uri, + description: "The location of the original full-size attachment" + }, + remote_url: %Schema{ + type: :string, + format: :uri, + description: + "The location of the full-size original attachment on the remote website. String (URL), or null if the attachment is local", + nullable: true + }, + preview_url: %Schema{ + type: :string, + format: :uri, + description: "The location of a scaled-down preview of the attachment" + }, + text_url: %Schema{ + type: :string, + format: :uri, + description: "A shorter URL for the attachment" + }, + description: %Schema{ + type: :string, + nullable: true, + description: + "Alternate text that describes what is in the media attachment, to be used for the visually impaired or when media attachments do not load" + }, + type: %Schema{ + type: :string, + enum: ["image", "video", "audio", "unknown"], + description: "The type of the attachment" + }, + pleroma: %Schema{ + type: :object, + properties: %{ + mime_type: %Schema{type: :string, description: "mime type of the attachment"} + } + } + }, + example: %{ + id: "1638338801", + type: "image", + url: "someurl", + remote_url: "someurl", + preview_url: "someurl", + text_url: "someurl", + description: nil, + pleroma: %{mime_type: "image/png"} + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/conversation.ex b/lib/pleroma/web/api_spec/schemas/conversation.ex new file mode 100644 index 000000000..d8ff5ba26 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/conversation.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.Conversation do + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.Account + alias Pleroma.Web.ApiSpec.Schemas.Status + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "Conversation", + description: "Represents a conversation with \"direct message\" visibility.", + type: :object, + required: [:id, :accounts, :unread], + properties: %{ + id: %Schema{type: :string}, + accounts: %Schema{ + type: :array, + items: Account, + description: "Participants in the conversation" + }, + unread: %Schema{ + type: :boolean, + description: "Is the conversation currently marked as unread?" + }, + # last_status: Status + last_status: %Schema{ + allOf: [Status], + description: "The last status in the conversation, to be used for optional display" + } + }, + example: %{ + "id" => "418450", + "unread" => true, + "accounts" => [Account.schema().example], + "last_status" => Status.schema().example + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/list.ex b/lib/pleroma/web/api_spec/schemas/list.ex new file mode 100644 index 000000000..b7d1685c9 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/list.ex @@ -0,0 +1,23 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Schemas.List do + alias OpenApiSpex.Schema + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "List", + description: "Represents a list of users", + type: :object, + properties: %{ + id: %Schema{type: :string, description: "The internal database ID of the list"}, + title: %Schema{type: :string, description: "The user-defined title of the list"} + }, + example: %{ + "id" => "12249", + "title" => "Friends" + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/poll.ex b/lib/pleroma/web/api_spec/schemas/poll.ex index 0474b550b..c62096db0 100644 --- a/lib/pleroma/web/api_spec/schemas/poll.ex +++ b/lib/pleroma/web/api_spec/schemas/poll.ex @@ -11,26 +11,72 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Poll do OpenApiSpex.schema(%{ title: "Poll", - description: "Response schema for account custom fields", + description: "Represents a poll attached to a status", type: :object, properties: %{ id: FlakeID, - expires_at: %Schema{type: :string, format: "date-time"}, - expired: %Schema{type: :boolean}, - multiple: %Schema{type: :boolean}, - votes_count: %Schema{type: :integer}, - voted: %Schema{type: :boolean}, - emojis: %Schema{type: :array, items: Emoji}, + expires_at: %Schema{ + type: :string, + format: :"date-time", + nullable: true, + description: "When the poll ends" + }, + expired: %Schema{type: :boolean, description: "Is the poll currently expired?"}, + multiple: %Schema{ + type: :boolean, + description: "Does the poll allow multiple-choice answers?" + }, + votes_count: %Schema{ + type: :integer, + nullable: true, + description: "How many votes have been received. Number, or null if `multiple` is false." + }, + voted: %Schema{ + type: :boolean, + nullable: true, + description: + "When called with a user token, has the authorized user voted? Boolean, or null if no current user." + }, + emojis: %Schema{ + type: :array, + items: Emoji, + description: "Custom emoji to be used for rendering poll options." + }, options: %Schema{ type: :array, items: %Schema{ + title: "PollOption", type: :object, properties: %{ title: %Schema{type: :string}, votes_count: %Schema{type: :integer} } - } + }, + description: "Possible answers for the poll." } + }, + example: %{ + id: "34830", + expires_at: "2019-12-05T04:05:08.302Z", + expired: true, + multiple: false, + votes_count: 10, + voters_count: nil, + voted: true, + own_votes: [ + 1 + ], + options: [ + %{ + title: "accept", + votes_count: 6 + }, + %{ + title: "deny", + votes_count: 4 + } + ], + emojis: [] } }) end diff --git a/lib/pleroma/web/api_spec/schemas/push_subscription.ex b/lib/pleroma/web/api_spec/schemas/push_subscription.ex new file mode 100644 index 000000000..cc91b95b8 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/push_subscription.ex @@ -0,0 +1,66 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Schemas.PushSubscription do + alias OpenApiSpex.Schema + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "PushSubscription", + description: "Response schema for a push subscription", + type: :object, + properties: %{ + id: %Schema{ + anyOf: [%Schema{type: :string}, %Schema{type: :integer}], + description: "The id of the push subscription in the database." + }, + endpoint: %Schema{type: :string, description: "Where push alerts will be sent to."}, + server_key: %Schema{type: :string, description: "The streaming server's VAPID key."}, + alerts: %Schema{ + type: :object, + description: "Which alerts should be delivered to the endpoint.", + properties: %{ + follow: %Schema{ + type: :boolean, + description: "Receive a push notification when someone has followed you?" + }, + favourite: %Schema{ + type: :boolean, + description: + "Receive a push notification when a status you created has been favourited by someone else?" + }, + reblog: %Schema{ + type: :boolean, + description: + "Receive a push notification when a status you created has been boosted by someone else?" + }, + mention: %Schema{ + type: :boolean, + description: + "Receive a push notification when someone else has mentioned you in a status?" + }, + poll: %Schema{ + type: :boolean, + description: + "Receive a push notification when a poll you voted in or created has ended? " + } + } + } + }, + example: %{ + "id" => "328_183", + "endpoint" => "https://yourdomain.example/listener", + "alerts" => %{ + "follow" => true, + "favourite" => true, + "reblog" => true, + "mention" => true, + "poll" => true + }, + "server_key" => + "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M=" + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/scheduled_status.ex b/lib/pleroma/web/api_spec/schemas/scheduled_status.ex new file mode 100644 index 000000000..0520d0848 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/scheduled_status.ex @@ -0,0 +1,54 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Schemas.ScheduledStatus do + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.Attachment + alias Pleroma.Web.ApiSpec.Schemas.Poll + alias Pleroma.Web.ApiSpec.Schemas.VisibilityScope + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "ScheduledStatus", + description: "Represents a status that will be published at a future scheduled date.", + type: :object, + required: [:id, :scheduled_at, :params], + properties: %{ + id: %Schema{type: :string}, + scheduled_at: %Schema{type: :string, format: :"date-time"}, + media_attachments: %Schema{type: :array, items: Attachment}, + params: %Schema{ + type: :object, + required: [:text, :visibility], + properties: %{ + text: %Schema{type: :string, nullable: true}, + media_ids: %Schema{type: :array, nullable: true, items: %Schema{type: :string}}, + sensitive: %Schema{type: :boolean, nullable: true}, + spoiler_text: %Schema{type: :string, nullable: true}, + visibility: %Schema{type: VisibilityScope, nullable: true}, + scheduled_at: %Schema{type: :string, format: :"date-time", nullable: true}, + poll: %Schema{type: Poll, nullable: true}, + in_reply_to_id: %Schema{type: :string, nullable: true} + } + } + }, + example: %{ + id: "3221", + scheduled_at: "2019-12-05T12:33:01.000Z", + params: %{ + text: "test content", + media_ids: nil, + sensitive: nil, + spoiler_text: nil, + visibility: nil, + scheduled_at: nil, + poll: nil, + idempotency: nil, + in_reply_to_id: nil + }, + media_attachments: [Attachment.schema().example] + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/status.ex b/lib/pleroma/web/api_spec/schemas/status.ex index aef0588d4..8b87cb25b 100644 --- a/lib/pleroma/web/api_spec/schemas/status.ex +++ b/lib/pleroma/web/api_spec/schemas/status.ex @@ -5,9 +5,11 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do alias OpenApiSpex.Schema alias Pleroma.Web.ApiSpec.Schemas.Account + alias Pleroma.Web.ApiSpec.Schemas.Attachment alias Pleroma.Web.ApiSpec.Schemas.Emoji alias Pleroma.Web.ApiSpec.Schemas.FlakeID alias Pleroma.Web.ApiSpec.Schemas.Poll + alias Pleroma.Web.ApiSpec.Schemas.Tag alias Pleroma.Web.ApiSpec.Schemas.VisibilityScope require OpenApiSpex @@ -17,78 +19,137 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do description: "Response schema for a status", type: :object, properties: %{ - account: Account, + account: %Schema{allOf: [Account], description: "The account that authored this status"}, application: %Schema{ + description: "The application used to post this status", type: :object, properties: %{ name: %Schema{type: :string}, website: %Schema{type: :string, nullable: true, format: :uri} } }, - bookmarked: %Schema{type: :boolean}, + bookmarked: %Schema{type: :boolean, description: "Have you bookmarked this status?"}, card: %Schema{ type: :object, nullable: true, + description: "Preview card for links included within status content", + required: [:url, :title, :description, :type], properties: %{ - type: %Schema{type: :string, enum: ["link", "photo", "video", "rich"]}, - provider_name: %Schema{type: :string, nullable: true}, - provider_url: %Schema{type: :string, format: :uri}, - url: %Schema{type: :string, format: :uri}, - image: %Schema{type: :string, nullable: true, format: :uri}, - title: %Schema{type: :string}, - description: %Schema{type: :string} + type: %Schema{ + type: :string, + enum: ["link", "photo", "video", "rich"], + description: "The type of the preview card" + }, + provider_name: %Schema{ + type: :string, + nullable: true, + description: "The provider of the original resource" + }, + provider_url: %Schema{ + type: :string, + format: :uri, + description: "A link to the provider of the original resource" + }, + url: %Schema{type: :string, format: :uri, description: "Location of linked resource"}, + image: %Schema{ + type: :string, + nullable: true, + format: :uri, + description: "Preview thumbnail" + }, + title: %Schema{type: :string, description: "Title of linked resource"}, + description: %Schema{type: :string, description: "Description of preview"} } }, - content: %Schema{type: :string, format: :html}, - created_at: %Schema{type: :string, format: "date-time"}, - emojis: %Schema{type: :array, items: Emoji}, - favourited: %Schema{type: :boolean}, - favourites_count: %Schema{type: :integer}, + content: %Schema{type: :string, format: :html, description: "HTML-encoded status content"}, + created_at: %Schema{ + type: :string, + format: "date-time", + description: "The date when this status was created" + }, + emojis: %Schema{ + type: :array, + items: Emoji, + description: "Custom emoji to be used when rendering status content" + }, + favourited: %Schema{type: :boolean, description: "Have you favourited this status?"}, + favourites_count: %Schema{ + type: :integer, + description: "How many favourites this status has received" + }, id: FlakeID, - in_reply_to_account_id: %Schema{type: :string, nullable: true}, - in_reply_to_id: %Schema{type: :string, nullable: true}, - language: %Schema{type: :string, nullable: true}, + in_reply_to_account_id: %Schema{ + allOf: [FlakeID], + nullable: true, + description: "ID of the account being replied to" + }, + in_reply_to_id: %Schema{ + allOf: [FlakeID], + nullable: true, + description: "ID of the status being replied" + }, + language: %Schema{ + type: :string, + nullable: true, + description: "Primary language of this status" + }, media_attachments: %Schema{ type: :array, + items: Attachment, + description: "Media that is attached to this status" + }, + mentions: %Schema{ + type: :array, + description: "Mentions of users within the status content", items: %Schema{ type: :object, properties: %{ - id: %Schema{type: :string}, - url: %Schema{type: :string, format: :uri}, - remote_url: %Schema{type: :string, format: :uri}, - preview_url: %Schema{type: :string, format: :uri}, - text_url: %Schema{type: :string, format: :uri}, - description: %Schema{type: :string}, - type: %Schema{type: :string, enum: ["image", "video", "audio", "unknown"]}, - pleroma: %Schema{ - type: :object, - properties: %{mime_type: %Schema{type: :string}} + id: %Schema{allOf: [FlakeID], description: "The account id of the mentioned user"}, + acct: %Schema{ + type: :string, + description: + "The webfinger acct: URI of the mentioned user. Equivalent to `username` for local users, or `username@domain` for remote users." + }, + username: %Schema{type: :string, description: "The username of the mentioned user"}, + url: %Schema{ + type: :string, + format: :uri, + description: "The location of the mentioned user's profile" } } } }, - mentions: %Schema{ - type: :array, - items: %Schema{ - type: :object, - properties: %{ - id: %Schema{type: :string}, - acct: %Schema{type: :string}, - username: %Schema{type: :string}, - url: %Schema{type: :string, format: :uri} - } - } + muted: %Schema{ + type: :boolean, + description: "Have you muted notifications for this status's conversation?" + }, + pinned: %Schema{ + type: :boolean, + description: "Have you pinned this status? Only appears if the status is pinnable." }, - muted: %Schema{type: :boolean}, - pinned: %Schema{type: :boolean}, pleroma: %Schema{ type: :object, properties: %{ - content: %Schema{type: :object, additionalProperties: %Schema{type: :string}}, - conversation_id: %Schema{type: :integer}, - direct_conversation_id: %Schema{type: :string, nullable: true}, + content: %Schema{ + type: :object, + additionalProperties: %Schema{type: :string}, + description: + "A map consisting of alternate representations of the `content` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`" + }, + conversation_id: %Schema{ + type: :integer, + description: "The ID of the AP context the status is associated with (if any)" + }, + direct_conversation_id: %Schema{ + type: :integer, + nullable: true, + description: + "The ID of the Mastodon direct message conversation the status is associated with (if any)" + }, emoji_reactions: %Schema{ type: :array, + description: + "A list with emoji / reaction maps. Contains no information about the reacting users, for that use the /statuses/:id/reactions endpoint.", items: %Schema{ type: :object, properties: %{ @@ -98,36 +159,74 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do } } }, - expires_at: %Schema{type: :string, format: "date-time", nullable: true}, - in_reply_to_account_acct: %Schema{type: :string, nullable: true}, - local: %Schema{type: :boolean}, - spoiler_text: %Schema{type: :object, additionalProperties: %Schema{type: :string}}, - thread_muted: %Schema{type: :boolean} - } - }, - poll: %Schema{type: Poll, nullable: true}, - reblog: %Schema{ - allOf: [%OpenApiSpex.Reference{"$ref": "#/components/schemas/Status"}], - nullable: true - }, - reblogged: %Schema{type: :boolean}, - reblogs_count: %Schema{type: :integer}, - replies_count: %Schema{type: :integer}, - sensitive: %Schema{type: :boolean}, - spoiler_text: %Schema{type: :string}, - tags: %Schema{ - type: :array, - items: %Schema{ - type: :object, - properties: %{ - name: %Schema{type: :string}, - url: %Schema{type: :string, format: :uri} + expires_at: %Schema{ + type: :string, + format: "date-time", + nullable: true, + description: + "A datetime (ISO 8601) that states when the post will expire (be deleted automatically), or empty if the post won't expire" + }, + in_reply_to_account_acct: %Schema{ + type: :string, + nullable: true, + description: "The `acct` property of User entity for replied user (if any)" + }, + local: %Schema{ + type: :boolean, + description: "`true` if the post was made on the local instance" + }, + spoiler_text: %Schema{ + type: :object, + additionalProperties: %Schema{type: :string}, + description: + "A map consisting of alternate representations of the `spoiler_text` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`." + }, + thread_muted: %Schema{ + type: :boolean, + description: "`true` if the thread the post belongs to is muted" } } }, - uri: %Schema{type: :string, format: :uri}, - url: %Schema{type: :string, nullable: true, format: :uri}, - visibility: VisibilityScope + poll: %Schema{allOf: [Poll], nullable: true, description: "The poll attached to the status"}, + reblog: %Schema{ + allOf: [%OpenApiSpex.Reference{"$ref": "#/components/schemas/Status"}], + nullable: true, + description: "The status being reblogged" + }, + reblogged: %Schema{type: :boolean, description: "Have you boosted this status?"}, + reblogs_count: %Schema{ + type: :integer, + description: "How many boosts this status has received" + }, + replies_count: %Schema{ + type: :integer, + description: "How many replies this status has received" + }, + sensitive: %Schema{ + type: :boolean, + description: "Is this status marked as sensitive content?" + }, + spoiler_text: %Schema{ + type: :string, + description: + "Subject or summary line, below which status content is collapsed until expanded" + }, + tags: %Schema{type: :array, items: Tag}, + uri: %Schema{ + type: :string, + format: :uri, + description: "URI of the status used for federation" + }, + url: %Schema{ + type: :string, + nullable: true, + format: :uri, + description: "A link to the status's HTML representation" + }, + visibility: %Schema{ + allOf: [VisibilityScope], + description: "Visibility of this status" + } }, example: %{ "account" => %{ diff --git a/lib/pleroma/web/api_spec/schemas/tag.ex b/lib/pleroma/web/api_spec/schemas/tag.ex new file mode 100644 index 000000000..e693fb83e --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/tag.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.Web.ApiSpec.Schemas.Tag do + alias OpenApiSpex.Schema + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "Tag", + description: "Represents a hashtag used within the content of a status", + type: :object, + properties: %{ + name: %Schema{type: :string, description: "The value of the hashtag after the # sign"}, + url: %Schema{ + type: :string, + format: :uri, + description: "A link to the hashtag on the instance" + } + }, + example: %{ + name: "cofe", + url: "https://lain.com/tag/cofe" + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/visibility_scope.ex b/lib/pleroma/web/api_spec/schemas/visibility_scope.ex index 8c81a4d73..831734e27 100644 --- a/lib/pleroma/web/api_spec/schemas/visibility_scope.ex +++ b/lib/pleroma/web/api_spec/schemas/visibility_scope.ex @@ -9,6 +9,6 @@ defmodule Pleroma.Web.ApiSpec.Schemas.VisibilityScope do title: "VisibilityScope", description: "Status visibility", type: :string, - enum: ["public", "unlisted", "private", "direct"] + enum: ["public", "unlisted", "private", "direct", "list"] }) end diff --git a/lib/pleroma/web/auth/pleroma_authenticator.ex b/lib/pleroma/web/auth/pleroma_authenticator.ex index cb09664ce..200ca03dc 100644 --- a/lib/pleroma/web/auth/pleroma_authenticator.ex +++ b/lib/pleroma/web/auth/pleroma_authenticator.ex @@ -16,11 +16,12 @@ 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 -> - {:error, error} + {:error, _reason} = error -> error + error -> {:error, error} end end diff --git a/lib/pleroma/web/auth/totp_authenticator.ex b/lib/pleroma/web/auth/totp_authenticator.ex new file mode 100644 index 000000000..1794e407c --- /dev/null +++ b/lib/pleroma/web/auth/totp_authenticator.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.Auth.TOTPAuthenticator do + alias Pleroma.MFA + alias Pleroma.MFA.TOTP + alias Pleroma.Plugs.AuthenticationPlug + alias Pleroma.User + + @doc "Verify code or check backup code." + @spec verify(String.t(), User.t()) :: + {:ok, :pass} | {:error, :invalid_token | :invalid_secret_and_token} + def verify( + token, + %User{ + multi_factor_authentication_settings: + %{enabled: true, totp: %{secret: secret, confirmed: true}} = _ + } = _user + ) + when is_binary(token) and byte_size(token) > 0 do + TOTP.validate_token(secret, token) + end + + def verify(_, _), do: {:error, :invalid_token} + + @spec verify_recovery_code(User.t(), String.t()) :: + {:ok, :pass} | {:error, :invalid_token} + def verify_recovery_code( + %User{multi_factor_authentication_settings: %{enabled: true, backup_codes: codes}} = user, + code + ) + when is_list(codes) and is_binary(code) do + hash_code = Enum.find(codes, fn hash -> AuthenticationPlug.checkpw(code, hash) end) + + if hash_code do + MFA.invalidate_backup_code(user, hash_code) + {:ok, :pass} + else + {:error, :invalid_token} + end + end + + def verify_recovery_code(_, _), do: {:error, :invalid_token} +end 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 4c0acd644..9bcb9f587 100644 --- a/lib/pleroma/web/common_api/activity_draft.ex +++ b/lib/pleroma/web/common_api/activity_draft.ex @@ -58,16 +58,16 @@ def create(user, params) do end defp put_params(draft, params) do - params = Map.put_new(params, "in_reply_to_status_id", params["in_reply_to_id"]) + params = Map.put_new(params, :in_reply_to_status_id, params[:in_reply_to_id]) %__MODULE__{draft | params: params} end - defp status(%{params: %{"status" => status}} = draft) do + defp status(%{params: %{status: status}} = draft) do %__MODULE__{draft | status: String.trim(status)} end defp summary(%{params: params} = draft) do - %__MODULE__{draft | summary: Map.get(params, "spoiler_text", "")} + %__MODULE__{draft | summary: Map.get(params, :spoiler_text, "")} end defp full_payload(%{status: status, summary: summary} = draft) do @@ -84,20 +84,20 @@ defp attachments(%{params: params} = draft) do %__MODULE__{draft | attachments: attachments} end - defp in_reply_to(%{params: %{"in_reply_to_status_id" => ""}} = draft), do: draft + defp in_reply_to(%{params: %{in_reply_to_status_id: ""}} = draft), do: draft - defp in_reply_to(%{params: %{"in_reply_to_status_id" => id}} = draft) when is_binary(id) do + defp in_reply_to(%{params: %{in_reply_to_status_id: id}} = draft) when is_binary(id) do %__MODULE__{draft | in_reply_to: Activity.get_by_id(id)} end - defp in_reply_to(%{params: %{"in_reply_to_status_id" => %Activity{} = in_reply_to}} = draft) do + defp in_reply_to(%{params: %{in_reply_to_status_id: %Activity{} = in_reply_to}} = draft) do %__MODULE__{draft | in_reply_to: in_reply_to} end defp in_reply_to(draft), do: draft defp in_reply_to_conversation(draft) do - in_reply_to_conversation = Participation.get(draft.params["in_reply_to_conversation_id"]) + in_reply_to_conversation = Participation.get(draft.params[:in_reply_to_conversation_id]) %__MODULE__{draft | in_reply_to_conversation: in_reply_to_conversation} end @@ -112,7 +112,7 @@ defp visibility(%{params: params} = draft) do end defp expires_at(draft) do - case CommonAPI.check_expiry_date(draft.params["expires_in"]) do + case CommonAPI.check_expiry_date(draft.params[:expires_in]) do {:ok, expires_at} -> %__MODULE__{draft | expires_at: expires_at} {:error, message} -> add_error(draft, message) end @@ -144,7 +144,7 @@ defp to_and_cc(draft) do addressed_users = draft.mentions |> Enum.map(fn {_, mentioned_user} -> mentioned_user.ap_id end) - |> Utils.get_addressed_users(draft.params["to"]) + |> Utils.get_addressed_users(draft.params[:to]) {to, cc} = Utils.get_to_and_cc( @@ -164,7 +164,7 @@ defp context(draft) do end defp sensitive(draft) do - sensitive = draft.params["sensitive"] || Enum.member?(draft.tags, {"#nsfw", "nsfw"}) + sensitive = draft.params[:sensitive] || Enum.member?(draft.tags, {"#nsfw", "nsfw"}) %__MODULE__{draft | sensitive: sensitive} end @@ -191,7 +191,7 @@ defp object(draft) do end defp preview?(draft) do - preview? = Pleroma.Web.ControllerHelper.truthy_param?(draft.params["preview"]) + preview? = Pleroma.Web.ControllerHelper.truthy_param?(draft.params[:preview]) %__MODULE__{draft | preview?: preview?} end diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 84888115b..d452429c0 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -24,6 +24,25 @@ defmodule Pleroma.Web.CommonAPI do require Pleroma.Constants require Logger + def unblock(blocker, blocked) do + with {_, %Activity{} = block} <- {:fetch_block, Utils.fetch_latest_block(blocker, blocked)}, + {:ok, unblock_data, _} <- Builder.undo(blocker, block), + {:ok, unblock, _} <- Pipeline.common_pipeline(unblock_data, local: true) do + {:ok, unblock} + else + {:fetch_block, nil} -> + if User.blocks?(blocker, blocked) do + User.unblock(blocker, blocked) + {:ok, :no_activity} + else + {:error, :not_blocking} + end + + e -> + e + end + end + def follow(follower, followed) do timeout = Pleroma.Config.get([:activitypub, :follow_handshake_timeout]) @@ -75,41 +94,63 @@ def reject_follow_request(follower, followed) do end def delete(activity_id, user) do - with {_, %Activity{data: %{"object" => _}} = activity} <- - {:find_activity, Activity.get_by_id_with_object(activity_id)}, - %Object{} = object <- Object.normalize(activity), + with {_, %Activity{data: %{"object" => _, "type" => "Create"}} = activity} <- + {:find_activity, Activity.get_by_id(activity_id)}, + {_, %Object{} = object, _} <- + {:find_object, Object.normalize(activity, false), activity}, true <- User.superuser?(user) || user.ap_id == object.data["actor"], - {:ok, _} <- unpin(activity_id, user), - {:ok, delete} <- ActivityPub.delete(object) do + {:ok, delete_data, _} <- Builder.delete(user, object.data["id"]), + {:ok, delete, _} <- Pipeline.common_pipeline(delete_data, local: true) do {:ok, delete} else - {:find_activity, _} -> {:error, :not_found} - _ -> {:error, dgettext("errors", "Could not delete")} + {:find_activity, _} -> + {:error, :not_found} + + {:find_object, nil, %Activity{data: %{"actor" => actor, "object" => object}}} -> + # We have the create activity, but not the object, it was probably pruned. + # Insert a tombstone and try again + with {:ok, tombstone_data, _} <- Builder.tombstone(actor, object), + {:ok, _tombstone} <- Object.create(tombstone_data) do + delete(activity_id, user) + else + _ -> + Logger.error( + "Could not insert tombstone for missing object on deletion. Object is #{object}." + ) + + {:error, dgettext("errors", "Could not delete")} + end + + _ -> + {:error, dgettext("errors", "Could not delete")} end end def repeat(id, user, params \\ %{}) do - with {_, %Activity{data: %{"type" => "Create"}} = activity} <- - {:find_activity, Activity.get_by_id(id)}, - object <- Object.normalize(activity), - announce_activity <- Utils.get_existing_announce(user.ap_id, object), - public <- public_announce?(object, params) do - 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 - {:find_activity, _} -> {:error, :not_found} - _ -> {:error, dgettext("errors", "Could not repeat")} + {:existing_announce, %Activity{} = announce} -> + {:ok, announce} + + _ -> + {:error, :not_found} end end def unrepeat(id, user) do with {_, %Activity{data: %{"type" => "Create"}} = activity} <- - {:find_activity, Activity.get_by_id(id)} do - object = Object.normalize(activity) - ActivityPub.unannounce(user, object) + {:find_activity, Activity.get_by_id(id)}, + %Object{} = note <- Object.normalize(activity, false), + %Activity{} = announce <- Utils.get_existing_announce(user.ap_id, note), + {:ok, undo, _} <- Builder.undo(user, announce), + {:ok, activity, _} <- Pipeline.common_pipeline(undo, local: true) do + {:ok, activity} else {:find_activity, _} -> {:error, :not_found} _ -> {:error, dgettext("errors", "Could not unrepeat")} @@ -166,9 +207,12 @@ def favorite_helper(user, id) do def unfavorite(id, user) do with {_, %Activity{data: %{"type" => "Create"}} = activity} <- - {:find_activity, Activity.get_by_id(id)} do - object = Object.normalize(activity) - ActivityPub.unlike(user, object) + {:find_activity, Activity.get_by_id(id)}, + %Object{} = note <- Object.normalize(activity, false), + %Activity{} = like <- Utils.get_existing_like(user.ap_id, note), + {:ok, undo, _} <- Builder.undo(user, like), + {:ok, activity, _} <- Pipeline.common_pipeline(undo, local: true) do + {:ok, activity} else {:find_activity, _} -> {:error, :not_found} _ -> {:error, dgettext("errors", "Could not unfavorite")} @@ -177,8 +221,10 @@ def unfavorite(id, user) do def react_with_emoji(id, user, emoji) do with %Activity{} = activity <- Activity.get_by_id(id), - object <- Object.normalize(activity) do - ActivityPub.react_with_emoji(user, object, emoji) + object <- Object.normalize(activity), + {:ok, emoji_react, _} <- Builder.emoji_react(user, object, emoji), + {:ok, activity, _} <- Pipeline.common_pipeline(emoji_react, local: true) do + {:ok, activity} else _ -> {:error, dgettext("errors", "Could not add reaction emoji")} @@ -186,8 +232,10 @@ def react_with_emoji(id, user, emoji) do end def unreact_with_emoji(id, user, emoji) do - with %Activity{} = reaction_activity <- Utils.get_latest_reaction(id, user, emoji) do - ActivityPub.unreact_with_emoji(user, reaction_activity.data["id"]) + with %Activity{} = reaction_activity <- Utils.get_latest_reaction(id, user, emoji), + {:ok, undo, _} <- Builder.undo(user, reaction_activity), + {:ok, activity, _} <- Pipeline.common_pipeline(undo, local: true) do + {:ok, activity} else _ -> {:error, dgettext("errors", "Could not remove reaction emoji")} @@ -249,7 +297,7 @@ defp normalize_and_validate_choices(choices, object) do end end - def public_announce?(_, %{"visibility" => visibility}) + def public_announce?(_, %{visibility: visibility}) when visibility in ~w{public unlisted private direct}, do: visibility in ~w(public unlisted) @@ -259,11 +307,11 @@ def public_announce?(object, _) do def get_visibility(_, _, %Participation{}), do: {"direct", "direct"} - def get_visibility(%{"visibility" => visibility}, in_reply_to, _) + def get_visibility(%{visibility: visibility}, in_reply_to, _) when visibility in ~w{public unlisted private direct}, do: {visibility, get_replied_to_visibility(in_reply_to)} - def get_visibility(%{"visibility" => "list:" <> list_id}, in_reply_to, _) do + def get_visibility(%{visibility: "list:" <> list_id}, in_reply_to, _) do visibility = {:list, String.to_integer(list_id)} {visibility, get_replied_to_visibility(in_reply_to)} end @@ -300,11 +348,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) @@ -321,7 +372,7 @@ def listen(user, %{"title" => _} = data) do end end - def post(user, %{"status" => _} = data) do + def post(user, %{status: _} = data) do with {:ok, draft} <- Pleroma.Web.CommonAPI.ActivityDraft.create(user, data) do ActivityPub.create(draft.changes, draft.preview?) end @@ -420,11 +471,11 @@ def update_activity_scope(activity_id, opts \\ %{}) do end end - defp toggle_sensitive(activity, %{"sensitive" => sensitive}) when sensitive in ~w(true false) do - toggle_sensitive(activity, %{"sensitive" => String.to_existing_atom(sensitive)}) + defp toggle_sensitive(activity, %{sensitive: sensitive}) when sensitive in ~w(true false) do + toggle_sensitive(activity, %{sensitive: String.to_existing_atom(sensitive)}) end - defp toggle_sensitive(%Activity{object: object} = activity, %{"sensitive" => sensitive}) + defp toggle_sensitive(%Activity{object: object} = activity, %{sensitive: sensitive}) when is_boolean(sensitive) do new_data = Map.put(object.data, "sensitive", sensitive) @@ -438,7 +489,7 @@ defp toggle_sensitive(%Activity{object: object} = activity, %{"sensitive" => sen defp toggle_sensitive(activity, _), do: {:ok, activity} - defp set_visibility(activity, %{"visibility" => visibility}) do + defp set_visibility(activity, %{visibility: visibility}) do Utils.update_activity_visibility(activity, visibility) end diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex index 6540fa5d1..6ec489f9a 100644 --- a/lib/pleroma/web/common_api/utils.ex +++ b/lib/pleroma/web/common_api/utils.ex @@ -22,11 +22,11 @@ defmodule Pleroma.Web.CommonAPI.Utils do require Logger require Pleroma.Constants - def attachments_from_ids(%{"media_ids" => ids, "descriptions" => desc} = _) do + def attachments_from_ids(%{media_ids: ids, descriptions: desc}) do attachments_from_ids_descs(ids, desc) end - def attachments_from_ids(%{"media_ids" => ids} = _) do + def attachments_from_ids(%{media_ids: ids}) do attachments_from_ids_no_descs(ids) end @@ -37,11 +37,11 @@ def attachments_from_ids_no_descs([]), do: [] def attachments_from_ids_no_descs(ids) do Enum.map(ids, fn media_id -> case Repo.get(Object, media_id) do - %Object{data: data} = _ -> data + %Object{data: data} -> data _ -> nil end end) - |> Enum.filter(& &1) + |> Enum.reject(&is_nil/1) end def attachments_from_ids_descs([], _), do: [] @@ -51,14 +51,14 @@ def attachments_from_ids_descs(ids, descs_str) do Enum.map(ids, fn media_id -> case Repo.get(Object, media_id) do - %Object{data: data} = _ -> + %Object{data: data} -> Map.put(data, "name", descs[media_id]) _ -> nil end end) - |> Enum.filter(& &1) + |> Enum.reject(&is_nil/1) end @spec get_to_and_cc( @@ -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, []} @@ -140,7 +141,7 @@ def make_poll_data(%{"poll" => %{"expires_in" => expires_in}} = data) |> make_poll_data() end - def make_poll_data(%{"poll" => %{"options" => options, "expires_in" => expires_in}} = data) + def make_poll_data(%{poll: %{options: options, expires_in: expires_in}} = data) when is_list(options) do limits = Pleroma.Config.get([:instance, :poll_limits]) @@ -163,7 +164,7 @@ def make_poll_data(%{"poll" => %{"options" => options, "expires_in" => expires_i |> DateTime.add(expires_in) |> DateTime.to_iso8601() - key = if truthy_param?(data["poll"]["multiple"]), do: "anyOf", else: "oneOf" + key = if truthy_param?(data.poll[:multiple]), do: "anyOf", else: "oneOf" poll = %{"type" => "Question", key => option_notes, "closed" => end_time} {:ok, {poll, emoji}} @@ -213,7 +214,7 @@ def make_content_html( |> Map.get("attachment_links", Config.get([:instance, :attachment_links])) |> truthy_param?() - content_type = get_content_type(data["content_type"]) + content_type = get_content_type(data[:content_type]) options = if visibility == "direct" && Config.get([:instance, :safe_dm_mentions]) do @@ -395,13 +396,16 @@ 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 + @spec confirm_current_password(User.t(), String.t()) :: {:ok, User.t()} | {:error, String.t()} def confirm_current_password(user, password) do with %User{local: true} = db_user <- User.get_cached_by_id(user.id), true <- AuthenticationPlug.checkpw(password, db_user.password_hash) do @@ -466,6 +470,8 @@ def maybe_notify_subscribers( |> Enum.map(& &1.ap_id) recipients ++ subscriber_ids + else + _e -> recipients end end @@ -477,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..5a1316a5f 100644 --- a/lib/pleroma/web/controller_helper.ex +++ b/lib/pleroma/web/controller_helper.ex @@ -5,8 +5,6 @@ defmodule Pleroma.Web.ControllerHelper do use Pleroma.Web, :controller - alias Pleroma.Config - # 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"] @@ -106,13 +104,16 @@ 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/feed/user_controller.ex b/lib/pleroma/web/feed/user_controller.ex index e27f85929..5a6fc9de0 100644 --- a/lib/pleroma/web/feed/user_controller.ex +++ b/lib/pleroma/web/feed/user_controller.ex @@ -27,7 +27,7 @@ def feed_redirect(%{assigns: %{format: format}} = conn, _params) when format in ["json", "activity+json"] do with %{halted: false} = conn <- Pleroma.Plugs.EnsureAuthenticatedPlug.call(conn, - unless_func: &Pleroma.Web.FederatingPlug.federating?/0 + unless_func: &Pleroma.Web.FederatingPlug.federating?/1 ) do ActivityPubController.call(conn, :user) end @@ -56,7 +56,7 @@ def feed(conn, %{"nickname" => nickname} = params) do "actor_id" => user.ap_id } |> put_if_exist("max_id", params["max_id"]) - |> ActivityPub.fetch_public_activities() + |> ActivityPub.fetch_public_or_unlisted_activities() conn |> put_resp_content_type("application/#{format}+xml") diff --git a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex index 61b0e2f63..47649d41d 100644 --- a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex @@ -10,8 +10,8 @@ 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.Plugs.EnsurePublicOrAuthenticatedPlug @@ -27,7 +27,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do alias Pleroma.Web.OAuth.Token alias Pleroma.Web.TwitterAPI.TwitterAPI - plug(OpenApiSpex.Plug.CastAndValidate, render_error: Pleroma.Web.ApiSpec.RenderError) + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug(:skip_plug, [OAuthScopesPlug, EnsurePublicOrAuthenticatedPlug] when action == :create) @@ -81,7 +81,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) @@ -177,6 +177,7 @@ def update_credentials(%{assigns: %{user: original_user}, body_params: params} = ) |> add_if_present(params, :pleroma_settings_store, :pleroma_settings_store) |> add_if_present(params, :default_scope, :default_scope) + |> add_if_present(params["source"], "privacy", :default_scope) |> add_if_present(params, :actor_type, :actor_type) changeset = User.update_changeset(user, user_params) @@ -189,7 +190,8 @@ def update_credentials(%{assigns: %{user: original_user}, body_params: params} = end defp add_if_present(map, params, params_field, map_field, value_function \\ &{:ok, &1}) do - with true <- Map.has_key?(params, params_field), + with true <- is_map(params), + 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 @@ -247,8 +249,7 @@ 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") @@ -271,7 +272,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 +297,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" @@ -356,8 +369,7 @@ def block(%{assigns: %{user: blocker, account: blocked}} = conn, _params) do @doc "POST /api/v1/accounts/:id/unblock" def unblock(%{assigns: %{user: blocker, account: blocked}} = conn, _params) do - with {:ok, _user_block} <- User.unblock(blocker, blocked), - {:ok, _activity} <- ActivityPub.unblock(blocker, blocked) do + with {:ok, _activity} <- CommonAPI.unblock(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/app_controller.ex b/lib/pleroma/web/mastodon_api/controllers/app_controller.ex index 408e11474..a516b6c20 100644 --- a/lib/pleroma/web/mastodon_api/controllers/app_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/app_controller.ex @@ -22,7 +22,7 @@ defmodule Pleroma.Web.MastodonAPI.AppController do plug(OAuthScopesPlug, %{scopes: ["read"]} when action == :verify_credentials) - plug(OpenApiSpex.Plug.CastAndValidate) + plug(Pleroma.Web.ApiSpec.CastAndValidate) @local_mastodon_name "Mastodon-Local" diff --git a/lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex b/lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex index c44641526..69f0e3846 100644 --- a/lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex @@ -13,11 +13,15 @@ defmodule Pleroma.Web.MastodonAPI.ConversationController do action_fallback(Pleroma.Web.MastodonAPI.FallbackController) + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug(OAuthScopesPlug, %{scopes: ["read:statuses"]} when action == :index) plug(OAuthScopesPlug, %{scopes: ["write:conversations"]} when action != :index) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.ConversationOperation + @doc "GET /api/v1/conversations" def index(%{assigns: %{user: user}} = conn, params) do + params = stringify_pagination_params(params) participations = Participation.for_user_with_last_activity_id(user, params) conn @@ -26,11 +30,27 @@ def index(%{assigns: %{user: user}} = conn, params) do end @doc "POST /api/v1/conversations/:id/read" - def mark_as_read(%{assigns: %{user: user}} = conn, %{"id" => participation_id}) do + def mark_as_read(%{assigns: %{user: user}} = conn, %{id: participation_id}) do with %Participation{} = participation <- Repo.get_by(Participation, id: participation_id, user_id: user.id), {:ok, participation} <- Participation.mark_as_read(participation) do render(conn, "participation.json", participation: participation, for: user) end end + + defp stringify_pagination_params(params) do + atom_keys = + Pleroma.Pagination.page_keys() + |> Enum.map(&String.to_atom(&1)) + + str_keys = + params + |> Map.take(atom_keys) + |> Enum.map(fn {key, value} -> {to_string(key), value} end) + |> Enum.into(%{}) + + params + |> Map.delete(atom_keys) + |> Map.merge(str_keys) + end end diff --git a/lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex b/lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex index 000ad743f..c5f47c5df 100644 --- a/lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex @@ -5,7 +5,7 @@ defmodule Pleroma.Web.MastodonAPI.CustomEmojiController do use Pleroma.Web, :controller - plug(OpenApiSpex.Plug.CastAndValidate) + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug( :skip_plug, diff --git a/lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex b/lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex index c4fa383f2..825b231ab 100644 --- a/lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex @@ -8,7 +8,7 @@ defmodule Pleroma.Web.MastodonAPI.DomainBlockController do alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.User - plug(OpenApiSpex.Plug.CastAndValidate) + plug(Pleroma.Web.ApiSpec.CastAndValidate) defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.DomainBlockOperation plug( 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/filter_controller.ex b/lib/pleroma/web/mastodon_api/controllers/filter_controller.ex index 7fd0562c9..abbf0ce02 100644 --- a/lib/pleroma/web/mastodon_api/controllers/filter_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/filter_controller.ex @@ -10,6 +10,7 @@ defmodule Pleroma.Web.MastodonAPI.FilterController do @oauth_read_actions [:show, :index] + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug(OAuthScopesPlug, %{scopes: ["read:filters"]} when action in @oauth_read_actions) plug( @@ -17,60 +18,60 @@ defmodule Pleroma.Web.MastodonAPI.FilterController do %{scopes: ["write:filters"]} when action not in @oauth_read_actions ) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.FilterOperation + @doc "GET /api/v1/filters" def index(%{assigns: %{user: user}} = conn, _) do filters = Filter.get_filters(user) - render(conn, "filters.json", filters: filters) + render(conn, "index.json", filters: filters) end @doc "POST /api/v1/filters" - def create( - %{assigns: %{user: user}} = conn, - %{"phrase" => phrase, "context" => context} = params - ) do + def create(%{assigns: %{user: user}, body_params: params} = conn, _) do query = %Filter{ user_id: user.id, - phrase: phrase, - context: context, - hide: Map.get(params, "irreversible", false), - whole_word: Map.get(params, "boolean", true) - # expires_at + phrase: params.phrase, + context: params.context, + hide: params.irreversible, + whole_word: params.whole_word + # TODO: support `expires_in` parameter (as in Mastodon API) } {:ok, response} = Filter.create(query) - render(conn, "filter.json", filter: response) + render(conn, "show.json", filter: response) end @doc "GET /api/v1/filters/:id" - def show(%{assigns: %{user: user}} = conn, %{"id" => filter_id}) do + def show(%{assigns: %{user: user}} = conn, %{id: filter_id}) do filter = Filter.get(filter_id, user) - render(conn, "filter.json", filter: filter) + render(conn, "show.json", filter: filter) end @doc "PUT /api/v1/filters/:id" def update( - %{assigns: %{user: user}} = conn, - %{"phrase" => phrase, "context" => context, "id" => filter_id} = params + %{assigns: %{user: user}, body_params: params} = conn, + %{id: filter_id} ) do - query = %Filter{ - user_id: user.id, - filter_id: filter_id, - phrase: phrase, - context: context, - hide: Map.get(params, "irreversible", nil), - whole_word: Map.get(params, "boolean", true) - # expires_at - } + params = + params + |> Map.delete(:irreversible) + |> Map.put(:hide, params[:irreversible]) + |> Enum.reject(fn {_key, value} -> is_nil(value) end) + |> Map.new() - {:ok, response} = Filter.update(query) - render(conn, "filter.json", filter: response) + # TODO: support `expires_in` parameter (as in Mastodon API) + + with %Filter{} = filter <- Filter.get(filter_id, user), + {:ok, %Filter{} = filter} <- Filter.update(filter, params) do + render(conn, "show.json", filter: filter) + end end @doc "DELETE /api/v1/filters/:id" - def delete(%{assigns: %{user: user}} = conn, %{"id" => filter_id}) do + def delete(%{assigns: %{user: user}} = conn, %{id: filter_id}) do query = %Filter{ user_id: user.id, filter_id: filter_id diff --git a/lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex b/lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex index 25f2269b9..748b6b475 100644 --- a/lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex @@ -10,6 +10,7 @@ defmodule Pleroma.Web.MastodonAPI.FollowRequestController do alias Pleroma.Web.CommonAPI plug(:put_view, Pleroma.Web.MastodonAPI.AccountView) + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug(:assign_follower when action != :index) action_fallback(:errors) @@ -21,6 +22,8 @@ defmodule Pleroma.Web.MastodonAPI.FollowRequestController do %{scopes: ["follow", "write:follows"]} when action != :index ) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.FollowRequestOperation + @doc "GET /api/v1/follow_requests" def index(%{assigns: %{user: followed}} = conn, _params) do follow_requests = User.get_follow_requests(followed) @@ -42,7 +45,7 @@ def reject(%{assigns: %{user: followed, follower: follower}} = conn, _params) do end end - defp assign_follower(%{params: %{"id" => id}} = conn, _) do + defp assign_follower(%{params: %{id: id}} = conn, _) do case User.get_cached_by_id(id) do %User{} = follower -> assign(conn, :follower, follower) nil -> Pleroma.Web.MastodonAPI.FallbackController.call(conn, {:error, :not_found}) |> halt() diff --git a/lib/pleroma/web/mastodon_api/controllers/instance_controller.ex b/lib/pleroma/web/mastodon_api/controllers/instance_controller.ex index 237f85677..d8859731d 100644 --- a/lib/pleroma/web/mastodon_api/controllers/instance_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/instance_controller.ex @@ -5,12 +5,16 @@ defmodule Pleroma.Web.MastodonAPI.InstanceController do use Pleroma.Web, :controller + plug(OpenApiSpex.Plug.CastAndValidate) + plug( :skip_plug, [Pleroma.Plugs.OAuthScopesPlug, Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug] when action in [:show, :peers] ) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.InstanceOperation + @doc "GET /api/v1/instance" def show(conn, _params) do render(conn, "show.json") diff --git a/lib/pleroma/web/mastodon_api/controllers/list_controller.ex b/lib/pleroma/web/mastodon_api/controllers/list_controller.ex index bfe856025..acdc76fd2 100644 --- a/lib/pleroma/web/mastodon_api/controllers/list_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/list_controller.ex @@ -9,20 +9,17 @@ defmodule Pleroma.Web.MastodonAPI.ListController do alias Pleroma.User alias Pleroma.Web.MastodonAPI.AccountView - plug(:list_by_id_and_user when action not in [:index, :create]) - @oauth_read_actions [:index, :show, :list_accounts] + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug(:list_by_id_and_user when action not in [:index, :create]) plug(OAuthScopesPlug, %{scopes: ["read:lists"]} when action in @oauth_read_actions) - - plug( - OAuthScopesPlug, - %{scopes: ["write:lists"]} - when action not in @oauth_read_actions - ) + plug(OAuthScopesPlug, %{scopes: ["write:lists"]} when action not in @oauth_read_actions) action_fallback(Pleroma.Web.MastodonAPI.FallbackController) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.ListOperation + # GET /api/v1/lists def index(%{assigns: %{user: user}} = conn, opts) do lists = Pleroma.List.for_user(user, opts) @@ -30,7 +27,7 @@ def index(%{assigns: %{user: user}} = conn, opts) do end # POST /api/v1/lists - def create(%{assigns: %{user: user}} = conn, %{"title" => title}) do + def create(%{assigns: %{user: user}, body_params: %{title: title}} = conn, _) do with {:ok, %Pleroma.List{} = list} <- Pleroma.List.create(title, user) do render(conn, "show.json", list: list) end @@ -42,7 +39,7 @@ def show(%{assigns: %{list: list}} = conn, _) do end # PUT /api/v1/lists/:id - def update(%{assigns: %{list: list}} = conn, %{"title" => title}) do + def update(%{assigns: %{list: list}, body_params: %{title: title}} = conn, _) do with {:ok, list} <- Pleroma.List.rename(list, title) do render(conn, "show.json", list: list) end @@ -65,7 +62,7 @@ def list_accounts(%{assigns: %{user: user, list: list}} = conn, _) do end # POST /api/v1/lists/:id/accounts - def add_to_list(%{assigns: %{list: list}} = conn, %{"account_ids" => account_ids}) do + def add_to_list(%{assigns: %{list: list}, body_params: %{account_ids: account_ids}} = conn, _) do Enum.each(account_ids, fn account_id -> with %User{} = followed <- User.get_cached_by_id(account_id) do Pleroma.List.follow(list, followed) @@ -76,7 +73,10 @@ def add_to_list(%{assigns: %{list: list}} = conn, %{"account_ids" => account_ids end # DELETE /api/v1/lists/:id/accounts - def remove_from_list(%{assigns: %{list: list}} = conn, %{"account_ids" => account_ids}) do + def remove_from_list( + %{assigns: %{list: list}, body_params: %{account_ids: account_ids}} = conn, + _ + ) do Enum.each(account_ids, fn account_id -> with %User{} = followed <- User.get_cached_by_id(account_id) do Pleroma.List.unfollow(list, followed) @@ -86,7 +86,7 @@ def remove_from_list(%{assigns: %{list: list}} = conn, %{"account_ids" => accoun json(conn, %{}) end - defp list_by_id_and_user(%{assigns: %{user: user}, params: %{"id" => id}} = conn, _) do + defp list_by_id_and_user(%{assigns: %{user: user}, params: %{id: id}} = conn, _) do case Pleroma.List.get(id, user) do %Pleroma.List{} = list -> assign(conn, :list, list) nil -> conn |> render_error(:not_found, "List not found") |> halt() diff --git a/lib/pleroma/web/mastodon_api/controllers/marker_controller.ex b/lib/pleroma/web/mastodon_api/controllers/marker_controller.ex index 9f9d4574e..85310edfa 100644 --- a/lib/pleroma/web/mastodon_api/controllers/marker_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/marker_controller.ex @@ -6,6 +6,8 @@ defmodule Pleroma.Web.MastodonAPI.MarkerController do use Pleroma.Web, :controller alias Pleroma.Plugs.OAuthScopesPlug + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug( OAuthScopesPlug, %{scopes: ["read:statuses"]} @@ -16,14 +18,18 @@ defmodule Pleroma.Web.MastodonAPI.MarkerController do action_fallback(Pleroma.Web.MastodonAPI.FallbackController) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.MarkerOperation + # GET /api/v1/markers def index(%{assigns: %{user: user}} = conn, params) do - markers = Pleroma.Marker.get_markers(user, params["timeline"]) + markers = Pleroma.Marker.get_markers(user, params[:timeline]) render(conn, "markers.json", %{markers: markers}) end # POST /api/v1/markers - def upsert(%{assigns: %{user: user}} = conn, params) do + def upsert(%{assigns: %{user: user}, body_params: params} = conn, _) do + params = Map.new(params, fn {key, value} -> {to_string(key), value} end) + with {:ok, result} <- Pleroma.Marker.upsert(user, params), markers <- Map.values(result) do render(conn, "markers.json", %{markers: markers}) 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 a14c86893..bcd12c73f 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 @@ -13,7 +13,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationController do @oauth_read_actions [:show, :index] - plug(OpenApiSpex.Plug.CastAndValidate, render_error: Pleroma.Web.ApiSpec.RenderError) + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug( OAuthScopesPlug, @@ -50,8 +50,7 @@ def index(%{assigns: %{user: user}} = conn, params) do |> 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/poll_controller.ex b/lib/pleroma/web/mastodon_api/controllers/poll_controller.ex index af9b66eff..db46ffcfc 100644 --- a/lib/pleroma/web/mastodon_api/controllers/poll_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/poll_controller.ex @@ -15,6 +15,8 @@ defmodule Pleroma.Web.MastodonAPI.PollController do action_fallback(Pleroma.Web.MastodonAPI.FallbackController) + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug( OAuthScopesPlug, %{scopes: ["read:statuses"], fallback: :proceed_unauthenticated} when action == :show @@ -22,8 +24,10 @@ defmodule Pleroma.Web.MastodonAPI.PollController do plug(OAuthScopesPlug, %{scopes: ["write:statuses"]} when action == :vote) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PollOperation + @doc "GET /api/v1/polls/:id" - def show(%{assigns: %{user: user}} = conn, %{"id" => id}) do + def show(%{assigns: %{user: user}} = conn, %{id: id}) do with %Object{} = object <- Object.get_by_id_and_maybe_refetch(id, interval: 60), %Activity{} = activity <- Activity.get_create_by_object_ap_id(object.data["id"]), true <- Visibility.visible_for_user?(activity, user) do @@ -35,7 +39,7 @@ def show(%{assigns: %{user: user}} = conn, %{"id" => id}) do end @doc "POST /api/v1/polls/:id/votes" - def vote(%{assigns: %{user: user}} = conn, %{"id" => id, "choices" => choices}) do + def vote(%{assigns: %{user: user}, body_params: %{choices: choices}} = conn, %{id: id}) do with %Object{data: %{"type" => "Question"}} = object <- Object.get_by_id(id), %Activity{} = activity <- Activity.get_create_by_object_ap_id(object.data["id"]), true <- Visibility.visible_for_user?(activity, user), diff --git a/lib/pleroma/web/mastodon_api/controllers/report_controller.ex b/lib/pleroma/web/mastodon_api/controllers/report_controller.ex index f65c5c62b..405167108 100644 --- a/lib/pleroma/web/mastodon_api/controllers/report_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/report_controller.ex @@ -9,7 +9,7 @@ defmodule Pleroma.Web.MastodonAPI.ReportController do action_fallback(Pleroma.Web.MastodonAPI.FallbackController) - plug(OpenApiSpex.Plug.CastAndValidate, render_error: Pleroma.Web.ApiSpec.RenderError) + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug(OAuthScopesPlug, %{scopes: ["write:reports"]} when action == :create) defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.ReportOperation diff --git a/lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex b/lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex index 899b78873..1719c67ea 100644 --- a/lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex @@ -11,17 +11,21 @@ defmodule Pleroma.Web.MastodonAPI.ScheduledActivityController do alias Pleroma.ScheduledActivity alias Pleroma.Web.MastodonAPI.MastodonAPI - plug(:assign_scheduled_activity when action != :index) - @oauth_read_actions [:show, :index] + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug(OAuthScopesPlug, %{scopes: ["read:statuses"]} when action in @oauth_read_actions) plug(OAuthScopesPlug, %{scopes: ["write:statuses"]} when action not in @oauth_read_actions) + plug(:assign_scheduled_activity when action != :index) action_fallback(Pleroma.Web.MastodonAPI.FallbackController) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.ScheduledActivityOperation + @doc "GET /api/v1/scheduled_statuses" def index(%{assigns: %{user: user}} = conn, params) do + params = Map.new(params, fn {key, value} -> {to_string(key), value} end) + with scheduled_activities <- MastodonAPI.get_scheduled_activities(user, params) do conn |> add_link_headers(scheduled_activities) @@ -35,7 +39,7 @@ def show(%{assigns: %{scheduled_activity: scheduled_activity}} = conn, _params) end @doc "PUT /api/v1/scheduled_statuses/:id" - def update(%{assigns: %{scheduled_activity: scheduled_activity}} = conn, params) do + def update(%{assigns: %{scheduled_activity: scheduled_activity}, body_params: params} = conn, _) do with {:ok, scheduled_activity} <- ScheduledActivity.update(scheduled_activity, params) do render(conn, "show.json", scheduled_activity: scheduled_activity) end @@ -48,7 +52,7 @@ def delete(%{assigns: %{scheduled_activity: scheduled_activity}} = conn, _params end end - defp assign_scheduled_activity(%{assigns: %{user: user}, params: %{"id" => id}} = conn, _) do + defp assign_scheduled_activity(%{assigns: %{user: user}, params: %{id: id}} = conn, _) do case ScheduledActivity.get(user, id) do %ScheduledActivity{} = activity -> assign(conn, :scheduled_activity, activity) nil -> Pleroma.Web.MastodonAPI.FallbackController.call(conn, {:error, :not_found}) |> halt() diff --git a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex index cd49da6ad..77e2224e4 100644 --- a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex @@ -5,19 +5,20 @@ defmodule Pleroma.Web.MastodonAPI.SearchController do use Pleroma.Web, :controller - import Pleroma.Web.ControllerHelper, only: [fetch_integer_param: 2, 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 require Logger + plug(Pleroma.Web.ApiSpec.CastAndValidate) + # Note: Mastodon doesn't allow unauthenticated access (requires read:accounts / read:search) plug(OAuthScopesPlug, %{scopes: ["read:search"], fallback: :proceed_unauthenticated}) @@ -25,18 +26,24 @@ defmodule Pleroma.Web.MastodonAPI.SearchController do plug(RateLimiter, [name: :search] when action in [:search, :search2, :account_search]) - def account_search(%{assigns: %{user: user}} = conn, %{"q" => query} = params) do + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.SearchOperation + + def account_search(%{assigns: %{user: user}} = conn, %{q: query} = params) do accounts = User.search(query, search_options(params, user)) 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) def search(conn, params), do: do_search(:v1, conn, params) - defp do_search(version, %{assigns: %{user: user}} = conn, %{"q" => query} = params) do + defp do_search(version, %{assigns: %{user: user}} = conn, %{q: query} = params) do options = search_options(params, user) timeout = Keyword.get(Repo.config(), :timeout, 15_000) default_values = %{"statuses" => [], "accounts" => [], "hashtags" => []} @@ -44,7 +51,7 @@ defp do_search(version, %{assigns: %{user: user}} = conn, %{"q" => query} = para result = default_values |> Enum.map(fn {resource, default_value} -> - if params["type"] in [nil, resource] do + if params[:type] in [nil, resource] do {resource, fn -> resource_search(version, resource, query, options) end} else {resource, fn -> default_value end} @@ -67,13 +74,13 @@ defp do_search(version, %{assigns: %{user: user}} = conn, %{"q" => query} = para defp search_options(params, user) do [ - skip_relationships: skip_relationships?(params), - resolve: params["resolve"] == "true", - following: params["following"] == "true", - limit: fetch_integer_param(params, "limit"), - offset: fetch_integer_param(params, "offset"), - type: params["type"], + 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)) @@ -86,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 @@ -96,8 +103,7 @@ 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 @@ -135,7 +141,7 @@ defp with_fallback(f, fallback \\ []) do end end - defp get_author(%{"account_id" => account_id}) when is_binary(account_id), + defp get_author(%{account_id: account_id}) when is_binary(account_id), do: User.get_cached_by_id(account_id) defp get_author(_params), do: nil diff --git a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex index 9eea2e9eb..f20157a5f 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 @@ -24,6 +24,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MastodonAPI.ScheduledActivityView + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug(:skip_plug, Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug when action in [:index, :show]) @unauthenticated_access %{fallback: :proceed_unauthenticated, scopes: []} @@ -83,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 ) @@ -97,12 +98,14 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do action_fallback(Pleroma.Web.MastodonAPI.FallbackController) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.StatusOperation + @doc """ GET `/api/v1/statuses?ids[]=1&ids[]=2` `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 = @@ -114,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 @@ -125,21 +127,29 @@ def index(%{assigns: %{user: user}} = conn, %{"ids" => ids} = params) do Creates a scheduled status when `scheduled_at` param is present and it's far enough """ def create( - %{assigns: %{user: user}} = conn, - %{"status" => _, "scheduled_at" => scheduled_at} = params + %{ + assigns: %{user: user}, + body_params: %{status: _, scheduled_at: scheduled_at} = params + } = conn, + _ ) when not is_nil(scheduled_at) do - params = Map.put(params, "in_reply_to_status_id", params["in_reply_to_id"]) + params = Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id]) + + attrs = %{ + params: Map.new(params, fn {key, value} -> {to_string(key), value} end), + scheduled_at: scheduled_at + } with {:far_enough, true} <- {:far_enough, ScheduledActivity.far_enough?(scheduled_at)}, - attrs <- %{"params" => params, "scheduled_at" => scheduled_at}, {:ok, scheduled_activity} <- ScheduledActivity.create(user, attrs) do conn |> put_view(ScheduledActivityView) |> render("show.json", scheduled_activity: scheduled_activity) else {:far_enough, _} -> - create(conn, Map.drop(params, ["scheduled_at"])) + params = Map.drop(params, [:scheduled_at]) + create(%Plug.Conn{conn | body_params: params}, %{}) error -> error @@ -151,8 +161,8 @@ def create( Creates a regular status """ - def create(%{assigns: %{user: user}} = conn, %{"status" => _} = params) do - params = Map.put(params, "in_reply_to_status_id", params["in_reply_to_id"]) + def create(%{assigns: %{user: user}, body_params: %{status: _} = params} = conn, _) do + params = Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id]) with {:ok, activity} <- CommonAPI.post(user, params) do try_render(conn, "show.json", @@ -169,12 +179,13 @@ def create(%{assigns: %{user: user}} = conn, %{"status" => _} = params) do end end - def create(%{assigns: %{user: _user}} = conn, %{"media_ids" => _} = params) do - create(conn, Map.put(params, "status", "")) + def create(%{assigns: %{user: _user}, body_params: %{media_ids: _} = params} = conn, _) do + params = Map.put(params, :status, "") + create(%Plug.Conn{conn | body_params: params}, %{}) end @doc "GET /api/v1/statuses/:id" - def show(%{assigns: %{user: user}} = conn, %{"id" => id}) do + def show(%{assigns: %{user: user}} = conn, %{id: id}) do with %Activity{} = activity <- Activity.get_by_id_with_object(id), true <- Visibility.visible_for_user?(activity, user) do try_render(conn, "show.json", @@ -188,7 +199,7 @@ def show(%{assigns: %{user: user}} = conn, %{"id" => id}) do end @doc "DELETE /api/v1/statuses/:id" - def delete(%{assigns: %{user: user}} = conn, %{"id" => id}) do + def delete(%{assigns: %{user: user}} = conn, %{id: id}) do with {:ok, %Activity{}} <- CommonAPI.delete(id, user) do json(conn, %{}) else @@ -198,23 +209,23 @@ def delete(%{assigns: %{user: user}} = conn, %{"id" => id}) do end @doc "POST /api/v1/statuses/:id/reblog" - def reblog(%{assigns: %{user: user}} = conn, %{"id" => ap_id_or_id} = params) do - with {:ok, announce, _activity} <- CommonAPI.repeat(ap_id_or_id, user, params), + def reblog(%{assigns: %{user: user}, body_params: params} = conn, %{id: ap_id_or_id}) do + 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 end @doc "POST /api/v1/statuses/:id/unreblog" - def unreblog(%{assigns: %{user: user}} = conn, %{"id" => ap_id_or_id}) do - with {:ok, _unannounce, %{data: %{"id" => id}}} <- CommonAPI.unrepeat(ap_id_or_id, user), - %Activity{} = activity <- Activity.get_create_by_object_ap_id_with_object(id) do + def unreblog(%{assigns: %{user: user}} = conn, %{id: activity_id}) do + with {:ok, _unannounce} <- CommonAPI.unrepeat(activity_id, user), + %Activity{} = activity <- Activity.get_by_id(activity_id) do try_render(conn, "show.json", %{activity: activity, for: user, as: :activity}) end end @doc "POST /api/v1/statuses/:id/favourite" - def favourite(%{assigns: %{user: user}} = conn, %{"id" => activity_id}) do + def favourite(%{assigns: %{user: user}} = conn, %{id: activity_id}) do with {:ok, _fav} <- CommonAPI.favorite(user, activity_id), %Activity{} = activity <- Activity.get_by_id(activity_id) do try_render(conn, "show.json", activity: activity, for: user, as: :activity) @@ -222,29 +233,29 @@ def favourite(%{assigns: %{user: user}} = conn, %{"id" => activity_id}) do end @doc "POST /api/v1/statuses/:id/unfavourite" - def unfavourite(%{assigns: %{user: user}} = conn, %{"id" => ap_id_or_id}) do - with {:ok, _, _, %{data: %{"id" => id}}} <- CommonAPI.unfavorite(ap_id_or_id, user), - %Activity{} = activity <- Activity.get_create_by_object_ap_id(id) do + def unfavourite(%{assigns: %{user: user}} = conn, %{id: activity_id}) do + with {:ok, _unfav} <- CommonAPI.unfavorite(activity_id, user), + %Activity{} = activity <- Activity.get_by_id(activity_id) do try_render(conn, "show.json", activity: activity, for: user, as: :activity) end end @doc "POST /api/v1/statuses/:id/pin" - def pin(%{assigns: %{user: user}} = conn, %{"id" => ap_id_or_id}) do + def pin(%{assigns: %{user: user}} = conn, %{id: ap_id_or_id}) do with {:ok, activity} <- CommonAPI.pin(ap_id_or_id, user) do try_render(conn, "show.json", activity: activity, for: user, as: :activity) end end @doc "POST /api/v1/statuses/:id/unpin" - def unpin(%{assigns: %{user: user}} = conn, %{"id" => ap_id_or_id}) do + def unpin(%{assigns: %{user: user}} = conn, %{id: ap_id_or_id}) do with {:ok, activity} <- CommonAPI.unpin(ap_id_or_id, user) do try_render(conn, "show.json", activity: activity, for: user, as: :activity) end end @doc "POST /api/v1/statuses/:id/bookmark" - def bookmark(%{assigns: %{user: user}} = conn, %{"id" => id}) do + def bookmark(%{assigns: %{user: user}} = conn, %{id: id}) do with %Activity{} = activity <- Activity.get_by_id_with_object(id), %User{} = user <- User.get_cached_by_nickname(user.nickname), true <- Visibility.visible_for_user?(activity, user), @@ -254,7 +265,7 @@ def bookmark(%{assigns: %{user: user}} = conn, %{"id" => id}) do end @doc "POST /api/v1/statuses/:id/unbookmark" - def unbookmark(%{assigns: %{user: user}} = conn, %{"id" => id}) do + def unbookmark(%{assigns: %{user: user}} = conn, %{id: id}) do with %Activity{} = activity <- Activity.get_by_id_with_object(id), %User{} = user <- User.get_cached_by_nickname(user.nickname), true <- Visibility.visible_for_user?(activity, user), @@ -264,7 +275,7 @@ def unbookmark(%{assigns: %{user: user}} = conn, %{"id" => id}) do end @doc "POST /api/v1/statuses/:id/mute" - def mute_conversation(%{assigns: %{user: user}} = conn, %{"id" => id}) do + def mute_conversation(%{assigns: %{user: user}} = conn, %{id: id}) do with %Activity{} = activity <- Activity.get_by_id(id), {:ok, activity} <- CommonAPI.add_mute(user, activity) do try_render(conn, "show.json", activity: activity, for: user, as: :activity) @@ -272,7 +283,7 @@ def mute_conversation(%{assigns: %{user: user}} = conn, %{"id" => id}) do end @doc "POST /api/v1/statuses/:id/unmute" - def unmute_conversation(%{assigns: %{user: user}} = conn, %{"id" => id}) do + def unmute_conversation(%{assigns: %{user: user}} = conn, %{id: id}) do with %Activity{} = activity <- Activity.get_by_id(id), {:ok, activity} <- CommonAPI.remove_mute(user, activity) do try_render(conn, "show.json", activity: activity, for: user, as: :activity) @@ -281,7 +292,7 @@ def unmute_conversation(%{assigns: %{user: user}} = conn, %{"id" => id}) do @doc "GET /api/v1/statuses/:id/card" @deprecated "https://github.com/tootsuite/mastodon/pull/11213" - def card(%{assigns: %{user: user}} = conn, %{"id" => status_id}) do + def card(%{assigns: %{user: user}} = conn, %{id: status_id}) do with %Activity{} = activity <- Activity.get_by_id(status_id), true <- Visibility.visible_for_user?(activity, user) do data = Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity) @@ -292,7 +303,7 @@ def card(%{assigns: %{user: user}} = conn, %{"id" => status_id}) do end @doc "GET /api/v1/statuses/:id/favourited_by" - def favourited_by(%{assigns: %{user: user}} = conn, %{"id" => id}) do + def favourited_by(%{assigns: %{user: user}} = conn, %{id: id}) do with %Activity{} = activity <- Activity.get_by_id_with_object(id), {:visible, true} <- {:visible, Visibility.visible_for_user?(activity, user)}, %Object{data: %{"likes" => likes}} <- Object.normalize(activity) do @@ -312,7 +323,7 @@ def favourited_by(%{assigns: %{user: user}} = conn, %{"id" => id}) do end @doc "GET /api/v1/statuses/:id/reblogged_by" - def reblogged_by(%{assigns: %{user: user}} = conn, %{"id" => id}) do + def reblogged_by(%{assigns: %{user: user}} = conn, %{id: id}) do with %Activity{} = activity <- Activity.get_by_id_with_object(id), {:visible, true} <- {:visible, Visibility.visible_for_user?(activity, user)}, %Object{data: %{"announcements" => announces, "id" => ap_id}} <- @@ -344,7 +355,7 @@ def reblogged_by(%{assigns: %{user: user}} = conn, %{"id" => id}) do end @doc "GET /api/v1/statuses/:id/context" - def context(%{assigns: %{user: user}} = conn, %{"id" => id}) do + 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"], %{ @@ -359,19 +370,19 @@ def context(%{assigns: %{user: user}} = conn, %{"id" => id}) do @doc "GET /api/v1/favourites" def favourites(%{assigns: %{user: %User{} = user}} = conn, params) do - activities = - ActivityPub.fetch_favourites( - user, - Map.take(params, Pleroma.Pagination.page_keys()) - ) + 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 |> add_link_headers(activities) |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end @@ -393,8 +404,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/subscription_controller.ex b/lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex index d184ea1d0..34eac97c5 100644 --- a/lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex @@ -11,14 +11,16 @@ defmodule Pleroma.Web.MastodonAPI.SubscriptionController do action_fallback(:errors) + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug(:restrict_push_enabled) plug(Pleroma.Plugs.OAuthScopesPlug, %{scopes: ["push"]}) - plug(:restrict_push_enabled) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.SubscriptionOperation # Creates PushSubscription # POST /api/v1/push/subscription # - def create(%{assigns: %{user: user, token: token}} = conn, params) do + def create(%{assigns: %{user: user, token: token}, body_params: params} = conn, _) do with {:ok, _} <- Subscription.delete_if_exists(user, token), {:ok, subscription} <- Subscription.create(user, token, params) do render(conn, "show.json", subscription: subscription) @@ -28,7 +30,7 @@ def create(%{assigns: %{user: user, token: token}} = conn, params) do # Gets PushSubscription # GET /api/v1/push/subscription # - def get(%{assigns: %{user: user, token: token}} = conn, _params) do + def show(%{assigns: %{user: user, token: token}} = conn, _params) do with {:ok, subscription} <- Subscription.get(user, token) do render(conn, "show.json", subscription: subscription) end @@ -37,7 +39,7 @@ def get(%{assigns: %{user: user, token: token}} = conn, _params) do # Updates PushSubscription # PUT /api/v1/push/subscription # - def update(%{assigns: %{user: user, token: token}} = conn, params) do + def update(%{assigns: %{user: user, token: token}, body_params: params} = conn, _) do with {:ok, subscription} <- Subscription.update(user, token, params) do render(conn, "show.json", subscription: subscription) end @@ -66,7 +68,7 @@ defp restrict_push_enabled(conn, _) do def errors(conn, {:error, :not_found}) do conn |> put_status(:not_found) - |> json(dgettext("errors", "Not found")) + |> json(%{error: dgettext("errors", "Record not found")}) end def errors(conn, _) do diff --git a/lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex b/lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex index c93a43969..f91df9ab7 100644 --- a/lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex @@ -5,11 +5,26 @@ defmodule Pleroma.Web.MastodonAPI.SuggestionController do use Pleroma.Web, :controller - alias Pleroma.Plugs.OAuthScopesPlug - require Logger - plug(OAuthScopesPlug, %{scopes: ["read"]} when action == :index) + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug(Pleroma.Plugs.OAuthScopesPlug, %{scopes: ["read"]} when action == :index) + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %OpenApiSpex.Operation{ + tags: ["Suggestions"], + summary: "Follow suggestions (Not implemented)", + operationId: "SuggestionController.index", + responses: %{ + 200 => Pleroma.Web.ApiSpec.Helpers.empty_array_response() + } + } + end @doc "GET /api/v1/suggestions" def index(conn, params), diff --git a/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex b/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex index 2d67e19da..958567510 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, truthy_param?: 1, skip_relationships?: 1] + only: [add_link_headers: 2, add_link_headers: 3] alias Pleroma.Pagination alias Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug @@ -15,6 +15,7 @@ defmodule Pleroma.Web.MastodonAPI.TimelineController do alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug(:skip_plug, EnsurePublicOrAuthenticatedPlug when action in [:public, :hashtag]) # TODO: Replace with a macro when there is a Phoenix release with the following commit in it: @@ -37,10 +38,13 @@ defmodule Pleroma.Web.MastodonAPI.TimelineController do plug(:put_view, Pleroma.Web.MastodonAPI.StatusView) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.TimelineOperation + # GET /api/v1/timelines/home 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) @@ -59,8 +63,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 @@ -68,6 +71,7 @@ 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) @@ -83,14 +87,15 @@ 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 - local_only = truthy_param?(params["local"]) + params = Map.new(params, fn {key, value} -> {to_string(key), value} end) + + local_only = params["local"] cfg_key = if local_only do @@ -118,8 +123,7 @@ 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 @@ -157,8 +161,8 @@ defp hashtag_fetching(params, user, local_only) do # GET /api/v1/timelines/tag/:tag def hashtag(%{assigns: %{user: user}} = conn, params) do - local_only = truthy_param?(params["local"]) - + params = Map.new(params, fn {key, value} -> {to_string(key), value} end) + local_only = params["local"] activities = hashtag_fetching(params, user, local_only) conn @@ -166,16 +170,16 @@ 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 # GET /api/v1/timelines/list/:list_id - def list(%{assigns: %{user: user}} = conn, %{"list_id" => id} = params) do + def list(%{assigns: %{user: user}} = conn, %{list_id: id} = params) do with %Pleroma.List{title: _title, following: following} <- Pleroma.List.get(id, user) 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) @@ -195,8 +199,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/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex index b4b61e74c..04c419d2f 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,9 +35,11 @@ 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: do_render("show.json", opts), - else: %{} + if User.visible_for?(user, opts[:for]) do + do_render("show.json", opts) + else + %{} + end end def render("mention.json", %{user: user}) do @@ -181,24 +182,26 @@ defp do_render("show.json", %{user: user} = opts) do bot = user.actor_type in ["Application", "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 %{ @@ -221,7 +224,7 @@ defp do_render("show.json", %{user: user} = opts) do fields: user.fields, bot: bot, source: %{ - note: (user.bio || "") |> String.replace(~r(
), "\n") |> Pleroma.HTML.strip_tags(), + note: prepare_user_bio(user), sensitive: false, fields: user.raw_fields, pleroma: %{ @@ -253,8 +256,20 @@ defp do_render("show.json", %{user: user} = opts) do |> maybe_put_follow_requests_count(user, opts[:for]) |> maybe_put_allow_following_move(user, opts[:for]) |> maybe_put_unread_conversation_count(user, opts[:for]) + |> 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 @@ -323,7 +338,11 @@ defp maybe_put_role(data, %User{id: user_id} = user, %User{id: user_id}) do defp maybe_put_role(data, _, _), do: data defp maybe_put_notification_settings(data, %User{id: user_id} = user, %User{id: user_id}) do - Kernel.put_in(data, [:pleroma, :notification_settings], user.notification_settings) + Kernel.put_in( + data, + [:pleroma, :notification_settings], + Map.from_struct(user.notification_settings) + ) end defp maybe_put_notification_settings(data, _, _), do: data @@ -350,6 +369,16 @@ defp maybe_put_unread_conversation_count(data, %User{id: user_id} = user, %User{ defp maybe_put_unread_conversation_count(data, _, _), do: data + defp maybe_put_unread_notification_count(data, %User{id: user_id}, %User{id: user_id} = user) do + Kernel.put_in( + data, + [:pleroma, :unread_notifications_count], + Pleroma.Notification.unread_notifications_count(user) + ) + end + + defp maybe_put_unread_notification_count(data, _, _), do: data + defp image_url(%{"url" => [%{"href" => href} | _]}), do: href defp image_url(_), do: nil end diff --git a/lib/pleroma/web/mastodon_api/views/filter_view.ex b/lib/pleroma/web/mastodon_api/views/filter_view.ex index 97fd1e83f..aeff646f5 100644 --- a/lib/pleroma/web/mastodon_api/views/filter_view.ex +++ b/lib/pleroma/web/mastodon_api/views/filter_view.ex @@ -7,11 +7,11 @@ defmodule Pleroma.Web.MastodonAPI.FilterView do alias Pleroma.Web.CommonAPI.Utils alias Pleroma.Web.MastodonAPI.FilterView - def render("filters.json", %{filters: filters} = opts) do - render_many(filters, FilterView, "filter.json", opts) + def render("index.json", %{filters: filters}) do + render_many(filters, FilterView, "show.json") end - def render("filter.json", %{filter: filter}) do + def render("show.json", %{filter: filter}) do expires_at = if filter.expires_at do Utils.to_masto_date(filter.expires_at) diff --git a/lib/pleroma/web/mastodon_api/views/instance_view.ex b/lib/pleroma/web/mastodon_api/views/instance_view.ex index a329ffc28..6a630eafa 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: 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(), @@ -86,4 +87,9 @@ def federation do end |> Map.put(:enabled, Config.get([:instance, :federating])) end + + defp instance_thumbnail do + Pleroma.Config.get([:instance, :instance_thumbnail]) || + "#{Pleroma.Web.base_url()}/instance/thumbnail.jpeg" + end end diff --git a/lib/pleroma/web/mastodon_api/views/marker_view.ex b/lib/pleroma/web/mastodon_api/views/marker_view.ex index 985368fe5..21d535d54 100644 --- a/lib/pleroma/web/mastodon_api/views/marker_view.ex +++ b/lib/pleroma/web/mastodon_api/views/marker_view.ex @@ -6,12 +6,16 @@ defmodule Pleroma.Web.MastodonAPI.MarkerView do use Pleroma.Web, :view def render("markers.json", %{markers: markers}) do - Enum.reduce(markers, %{}, fn m, acc -> - Map.put_new(acc, m.timeline, %{ - last_read_id: m.last_read_id, - version: m.lock_version, - updated_at: NaiveDateTime.to_iso8601(m.updated_at) - }) + Map.new(markers, fn m -> + {m.timeline, + %{ + last_read_id: m.last_read_id, + version: m.lock_version, + updated_at: NaiveDateTime.to_iso8601(m.updated_at), + pleroma: %{ + unread_count: m.unread_count + } + }} end) end end diff --git a/lib/pleroma/web/mastodon_api/views/notification_view.ex b/lib/pleroma/web/mastodon_api/views/notification_view.ex index 4da1ab67f..c46ddcf55 100644 --- a/lib/pleroma/web/mastodon_api/views/notification_view.ex +++ b/lib/pleroma/web/mastodon_api/views/notification_view.ex @@ -51,9 +51,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 = @@ -83,15 +81,13 @@ def render( mastodon_type = Activity.mastodon_notification_type(activity) - render_opts = %{ - relationships: opts[:relationships], - skip_relationships: opts[:skip_relationships] - } + # Note: :relationships contain user mutes (needed for :muted flag in :status) + status_render_opts = %{relationships: opts[:relationships]} with %{id: _} = account <- AccountView.render( "show.json", - Map.merge(render_opts, %{user: actor, for: reading_user}) + %{user: actor, for: reading_user} ) do response = %{ id: to_string(notification.id), @@ -105,21 +101,20 @@ def render( case mastodon_type do "mention" -> - put_status(response, activity, reading_user, render_opts) + put_status(response, activity, reading_user, status_render_opts) "favourite" -> - put_status(response, parent_activity_fn.(), reading_user, render_opts) + put_status(response, parent_activity_fn.(), reading_user, status_render_opts) "reblog" -> - put_status(response, parent_activity_fn.(), reading_user, render_opts) + put_status(response, parent_activity_fn.(), reading_user, status_render_opts) "move" -> - # Note: :skip_relationships option being applied to _account_ rendering (here) - put_target(response, activity, reading_user, render_opts) + put_target(response, activity, reading_user, %{}) "pleroma:emoji_reaction" -> response - |> put_status(parent_activity_fn.(), reading_user, render_opts) + |> put_status(parent_activity_fn.(), reading_user, status_render_opts) |> put_emoji(activity) type when type in ["follow", "follow_request"] -> diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index 24167f66f..8e3715093 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -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), @@ -442,27 +436,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/mastodon_api/websocket_handler.ex b/lib/pleroma/web/mastodon_api/websocket_handler.ex index 5652a37c1..94e4595d8 100644 --- a/lib/pleroma/web/mastodon_api/websocket_handler.ex +++ b/lib/pleroma/web/mastodon_api/websocket_handler.ex @@ -12,29 +12,19 @@ defmodule Pleroma.Web.MastodonAPI.WebsocketHandler do @behaviour :cowboy_websocket - @streams [ - "public", - "public:local", - "public:media", - "public:local:media", - "user", - "user:notification", - "direct", - "list", - "hashtag" - ] - @anonymous_streams ["public", "public:local", "hashtag"] - - # Handled by periodic keepalive in Pleroma.Web.Streamer.Ping. - @timeout :infinity + # Client ping period. + @tick :timer.seconds(30) + # Cowboy timeout period. + @timeout :timer.seconds(60) + # Hibernate every X messages + @hibernate_every 100 def init(%{qs: qs} = req, state) do - with params <- :cow_qs.parse_qs(qs), + with params <- Enum.into(:cow_qs.parse_qs(qs), %{}), sec_websocket <- :cowboy_req.header("sec-websocket-protocol", req, nil), - access_token <- List.keyfind(params, "access_token", 0), - {_, stream} <- List.keyfind(params, "stream", 0), - {:ok, user} <- allow_request(stream, [access_token, sec_websocket]), - topic when is_binary(topic) <- expand_topic(stream, params) do + access_token <- Map.get(params, "access_token"), + {:ok, user} <- authenticate_request(access_token, sec_websocket), + {:ok, topic} <- Streamer.get_topic(Map.get(params, "stream"), user, params) do req = if sec_websocket do :cowboy_req.set_resp_header("sec-websocket-protocol", sec_websocket, req) @@ -42,43 +32,70 @@ def init(%{qs: qs} = req, state) do req end - {:cowboy_websocket, req, %{user: user, topic: topic}, %{idle_timeout: @timeout}} + {:cowboy_websocket, req, %{user: user, topic: topic, count: 0, timer: nil}, + %{idle_timeout: @timeout}} else - {:error, code} -> - Logger.debug("#{__MODULE__} denied connection: #{inspect(code)} - #{inspect(req)}") - {:ok, req} = :cowboy_req.reply(code, req) + {:error, :bad_topic} -> + Logger.debug("#{__MODULE__} bad topic #{inspect(req)}") + {:ok, req} = :cowboy_req.reply(404, req) {:ok, req, state} - error -> - Logger.debug("#{__MODULE__} denied connection: #{inspect(error)} - #{inspect(req)}") - {:ok, req} = :cowboy_req.reply(400, req) + {:error, :unauthorized} -> + Logger.debug("#{__MODULE__} authentication error: #{inspect(req)}") + {:ok, req} = :cowboy_req.reply(401, req) {:ok, req, state} end end def websocket_init(state) do - send(self(), :subscribe) - {:ok, state} - end - - # We never receive messages. - def websocket_handle(_frame, state) do - {:ok, state} - end - - def websocket_info(:subscribe, state) do Logger.debug( "#{__MODULE__} accepted websocket connection for user #{ (state.user || %{id: "anonymous"}).id }, topic #{state.topic}" ) - Streamer.add_socket(state.topic, streamer_socket(state)) + Streamer.add_socket(state.topic, state.user) + {:ok, %{state | timer: timer()}} + end + + # Client's Pong frame. + def websocket_handle(:pong, state) do + if state.timer, do: Process.cancel_timer(state.timer) + {:ok, %{state | timer: timer()}} + end + + # We never receive messages. + def websocket_handle(frame, state) do + Logger.error("#{__MODULE__} received frame: #{inspect(frame)}") {:ok, state} end + def websocket_info({:render_with_user, view, template, item}, state) do + user = %User{} = User.get_cached_by_ap_id(state.user.ap_id) + + unless Streamer.filtered_by_user?(user, item) do + websocket_info({:text, view.render(template, item, user)}, %{state | user: user}) + else + {:ok, state} + end + end + def websocket_info({:text, message}, state) do - {:reply, {:text, message}, state} + # If the websocket processed X messages, force an hibernate/GC. + # We don't hibernate at every message to balance CPU usage/latency with RAM usage. + if state.count > @hibernate_every do + {:reply, {:text, message}, %{state | count: 0}, :hibernate} + else + {:reply, {:text, message}, %{state | count: state.count + 1}} + end + end + + # Ping tick. We don't re-queue a timer there, it is instead queued when :pong is received. + # As we hibernate there, reset the count to 0. + # If the client misses :pong, Cowboy will automatically timeout the connection after + # `@idle_timeout`. + def websocket_info(:tick, state) do + {:reply, :ping, %{state | timer: nil, count: 0}, :hibernate} end def terminate(reason, _req, state) do @@ -88,56 +105,29 @@ def terminate(reason, _req, state) do }, topic #{state.topic || "?"}: #{inspect(reason)}" ) - Streamer.remove_socket(state.topic, streamer_socket(state)) + Streamer.remove_socket(state.topic) :ok end # Public streams without authentication. - defp allow_request(stream, [nil, nil]) when stream in @anonymous_streams do + defp authenticate_request(nil, nil) do {:ok, nil} end # Authenticated streams. - defp allow_request(stream, [access_token, sec_websocket]) when stream in @streams do - token = - with {"access_token", token} <- access_token do - token - else - _ -> sec_websocket - end + defp authenticate_request(access_token, sec_websocket) do + token = access_token || sec_websocket with true <- is_bitstring(token), %Token{user_id: user_id} <- Repo.get_by(Token, token: token), user = %User{} <- User.get_cached_by_id(user_id) do {:ok, user} else - _ -> {:error, 403} + _ -> {:error, :unauthorized} end end - # Not authenticated. - defp allow_request(stream, _) when stream in @streams, do: {:error, 403} - - # No matching stream. - defp allow_request(_, _), do: {:error, 404} - - defp expand_topic("hashtag", params) do - case List.keyfind(params, "tag", 0) do - {_, tag} -> "hashtag:#{tag}" - _ -> nil - end - end - - defp expand_topic("list", params) do - case List.keyfind(params, "list", 0) do - {_, list} -> "list:#{list}" - _ -> nil - end - end - - defp expand_topic(topic, _), do: topic - - defp streamer_socket(state) do - %{transport_pid: self(), assigns: state} + defp timer do + Process.send_after(self(), :tick, @tick) end end diff --git a/lib/pleroma/web/media_proxy/invalidation.ex b/lib/pleroma/web/media_proxy/invalidation.ex new file mode 100644 index 000000000..c037ff13e --- /dev/null +++ b/lib/pleroma/web/media_proxy/invalidation.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.Web.MediaProxy.Invalidation do + @moduledoc false + + @callback purge(list(String.t()), map()) :: {:ok, String.t()} | {:error, String.t()} + + alias Pleroma.Config + + @spec purge(list(String.t())) :: {:ok, String.t()} | {:error, String.t()} + def purge(urls) do + [:media_proxy, :invalidation, :enabled] + |> Config.get() + |> do_purge(urls) + end + + defp do_purge(true, urls) do + provider = Config.get([:media_proxy, :invalidation, :provider]) + options = Config.get(provider) + provider.purge(urls, options) + end + + defp do_purge(_, _), do: :ok +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..07248df6e --- /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 = Map.get(opts, :method, :purge) + headers = Map.get(opts, :headers, []) + options = Map.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, "success"} + 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..6be782132 --- /dev/null +++ b/lib/pleroma/web/media_proxy/invalidations/script.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.MediaProxy.Invalidation.Script do + @moduledoc false + + @behaviour Pleroma.Web.MediaProxy.Invalidation + + require Logger + + @impl Pleroma.Web.MediaProxy.Invalidation + def purge(urls, %{script_path: script_path} = _options) do + args = + urls + |> List.wrap() + |> Enum.uniq() + |> Enum.join(" ") + + path = Path.expand(script_path) + + Logger.debug("Running cache purge: #{inspect(urls)}, #{path}") + + case do_purge(path, [args]) do + {result, exit_status} when exit_status > 0 -> + Logger.error("Error while cache purge: #{inspect(result)}") + {:error, inspect(result)} + + _ -> + {:ok, "success"} + end + end + + def purge(_, _), do: {:error, "not found script path"} + + defp do_purge(path, args) do + System.cmd(path, args) + rescue + error -> {inspect(error), 1} + end +end diff --git a/lib/pleroma/web/mongooseim/mongoose_im_controller.ex b/lib/pleroma/web/mongooseim/mongoose_im_controller.ex index 1ed6ee521..6cbbe8fd8 100644 --- a/lib/pleroma/web/mongooseim/mongoose_im_controller.ex +++ b/lib/pleroma/web/mongooseim/mongoose_im_controller.ex @@ -5,7 +5,7 @@ defmodule Pleroma.Web.MongooseIM.MongooseIMController do use Pleroma.Web, :controller - alias Comeonin.Pbkdf2 + alias Pleroma.Plugs.AuthenticationPlug alias Pleroma.Plugs.RateLimiter alias Pleroma.Repo alias Pleroma.User @@ -28,7 +28,7 @@ def user_exists(conn, %{"user" => username}) do def check_password(conn, %{"user" => username, "pass" => password}) do with %User{password_hash: password_hash, deactivated: false} <- Repo.get_by(User, nickname: username, local: true), - true <- Pbkdf2.checkpw(password, password_hash) do + true <- AuthenticationPlug.checkpw(password, password_hash) do conn |> json(true) else diff --git a/lib/pleroma/web/oauth/mfa_controller.ex b/lib/pleroma/web/oauth/mfa_controller.ex new file mode 100644 index 000000000..53e19f82e --- /dev/null +++ b/lib/pleroma/web/oauth/mfa_controller.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.OAuth.MFAController do + @moduledoc """ + The model represents api to use Multi Factor authentications. + """ + + use Pleroma.Web, :controller + + alias Pleroma.MFA + alias Pleroma.Web.Auth.TOTPAuthenticator + alias Pleroma.Web.OAuth.MFAView, as: View + alias Pleroma.Web.OAuth.OAuthController + alias Pleroma.Web.OAuth.Token + + plug(:fetch_session when action in [:show, :verify]) + plug(:fetch_flash when action in [:show, :verify]) + + @doc """ + Display form to input mfa code or recovery code. + """ + def show(conn, %{"mfa_token" => mfa_token} = params) do + template = Map.get(params, "challenge_type", "totp") + + conn + |> put_view(View) + |> render("#{template}.html", %{ + mfa_token: mfa_token, + redirect_uri: params["redirect_uri"], + state: params["state"] + }) + end + + @doc """ + Verification code and continue authorization. + """ + def verify(conn, %{"mfa" => %{"mfa_token" => mfa_token} = mfa_params} = _) do + with {:ok, %{user: user, authorization: auth}} <- MFA.Token.validate(mfa_token), + {:ok, _} <- validates_challenge(user, mfa_params) do + conn + |> OAuthController.after_create_authorization(auth, %{ + "authorization" => %{ + "redirect_uri" => mfa_params["redirect_uri"], + "state" => mfa_params["state"] + } + }) + else + _ -> + conn + |> put_flash(:error, "Two-factor authentication failed.") + |> put_status(:unauthorized) + |> show(mfa_params) + end + end + + @doc """ + Verification second step of MFA (or recovery) and returns access token. + + ## Endpoint + POST /oauth/mfa/challenge + + params: + `client_id` + `client_secret` + `mfa_token` - access token to check second step of mfa + `challenge_type` - 'totp' or 'recovery' + `code` + + """ + def challenge(conn, %{"mfa_token" => mfa_token} = params) do + with {:ok, app} <- Token.Utils.fetch_app(conn), + {:ok, %{user: user, authorization: auth}} <- MFA.Token.validate(mfa_token), + {:ok, _} <- validates_challenge(user, params), + {:ok, token} <- Token.exchange_token(app, auth) do + json(conn, Token.Response.build(user, token)) + else + _error -> + conn + |> put_status(400) + |> json(%{error: "Invalid code"}) + end + end + + # Verify TOTP Code + defp validates_challenge(user, %{"challenge_type" => "totp", "code" => code} = _) do + TOTPAuthenticator.verify(code, user) + end + + # Verify Recovery Code + defp validates_challenge(user, %{"challenge_type" => "recovery", "code" => code} = _) do + TOTPAuthenticator.verify_recovery_code(user, code) + end + + defp validates_challenge(_, _), do: {:error, :unsupported_challenge_type} +end diff --git a/lib/pleroma/web/oauth/mfa_view.ex b/lib/pleroma/web/oauth/mfa_view.ex new file mode 100644 index 000000000..41d5578dc --- /dev/null +++ b/lib/pleroma/web/oauth/mfa_view.ex @@ -0,0 +1,8 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.OAuth.MFAView do + use Pleroma.Web, :view + import Phoenix.HTML.Form +end diff --git a/lib/pleroma/web/oauth/oauth_controller.ex b/lib/pleroma/web/oauth/oauth_controller.ex index 685269877..7c804233c 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.MFA alias Pleroma.Plugs.RateLimiter alias Pleroma.Registration alias Pleroma.Repo @@ -14,6 +15,7 @@ defmodule Pleroma.Web.OAuth.OAuthController do alias Pleroma.Web.ControllerHelper alias Pleroma.Web.OAuth.App alias Pleroma.Web.OAuth.Authorization + alias Pleroma.Web.OAuth.MFAController alias Pleroma.Web.OAuth.Scopes alias Pleroma.Web.OAuth.Token alias Pleroma.Web.OAuth.Token.Strategy.RefreshToken @@ -121,7 +123,8 @@ def create_authorization( %{"authorization" => _} = params, opts \\ [] ) do - with {:ok, auth} <- do_create_authorization(conn, params, opts[:user]) do + with {:ok, auth, user} <- do_create_authorization(conn, params, opts[:user]), + {:mfa_required, _, _, false} <- {:mfa_required, user, auth, MFA.require?(user)} do after_create_authorization(conn, auth, params) else error -> @@ -179,6 +182,22 @@ defp handle_create_authorization_error( |> authorize(params) end + defp handle_create_authorization_error( + %Plug.Conn{} = conn, + {:mfa_required, user, auth, _}, + params + ) do + {:ok, token} = MFA.Token.create_token(user, auth) + + data = %{ + "mfa_token" => token.token, + "redirect_uri" => params["authorization"]["redirect_uri"], + "state" => params["authorization"]["state"] + } + + MFAController.show(conn, data) + end + defp handle_create_authorization_error( %Plug.Conn{} = conn, {:account_status, :password_reset_pending}, @@ -231,7 +250,8 @@ def token_exchange(%Plug.Conn{} = conn, %{"grant_type" => "authorization_code"} json(conn, Token.Response.build(user, token, response_attrs)) else - _error -> render_invalid_credentials_error(conn) + error -> + handle_token_exchange_error(conn, error) end end @@ -244,6 +264,7 @@ def token_exchange( {:account_status, :active} <- {:account_status, User.account_status(user)}, {:ok, scopes} <- validate_scopes(app, params), {:ok, auth} <- Authorization.create_authorization(app, user, scopes), + {:mfa_required, _, _, false} <- {:mfa_required, user, auth, MFA.require?(user)}, {:ok, token} <- Token.exchange_token(app, auth) do json(conn, Token.Response.build(user, token)) else @@ -270,13 +291,20 @@ def token_exchange(%Plug.Conn{} = conn, %{"grant_type" => "client_credentials"} {:ok, token} <- Token.exchange_token(app, auth) do json(conn, Token.Response.build_for_client_credentials(token)) else - _error -> render_invalid_credentials_error(conn) + _error -> + handle_token_exchange_error(conn, :invalid_credentails) end end # Bad request def token_exchange(%Plug.Conn{} = conn, params), do: bad_request(conn, params) + defp handle_token_exchange_error(%Plug.Conn{} = conn, {:mfa_required, user, auth, _}) do + conn + |> put_status(:forbidden) + |> json(build_and_response_mfa_token(user, auth)) + end + defp handle_token_exchange_error(%Plug.Conn{} = conn, {:account_status, :deactivated}) do render_error( conn, @@ -434,7 +462,8 @@ def registration_details(%Plug.Conn{} = conn, %{"authorization" => auth_attrs}) def register(%Plug.Conn{} = conn, %{"authorization" => _, "op" => "connect"} = params) do with registration_id when not is_nil(registration_id) <- get_session_registration_id(conn), %Registration{} = registration <- Repo.get(Registration, registration_id), - {_, {:ok, auth}} <- {:create_authorization, do_create_authorization(conn, params)}, + {_, {:ok, auth, _user}} <- + {:create_authorization, do_create_authorization(conn, params)}, %User{} = user <- Repo.preload(auth, :user).user, {:ok, _updated_registration} <- Registration.bind_to_user(registration, user) do conn @@ -500,8 +529,9 @@ defp do_create_authorization( %App{} = app <- Repo.get_by(App, client_id: client_id), true <- redirect_uri in String.split(app.redirect_uris), {:ok, scopes} <- validate_scopes(app, auth_attrs), - {:account_status, :active} <- {:account_status, User.account_status(user)} do - Authorization.create_authorization(app, user, scopes) + {:account_status, :active} <- {:account_status, User.account_status(user)}, + {:ok, auth} <- Authorization.create_authorization(app, user, scopes) do + {:ok, auth, user} end end @@ -515,6 +545,12 @@ defp get_session_registration_id(%Plug.Conn{} = conn), do: get_session(conn, :re defp put_session_registration_id(%Plug.Conn{} = conn, registration_id), do: put_session(conn, :registration_id, registration_id) + defp build_and_response_mfa_token(user, auth) do + with {:ok, token} <- MFA.Token.create_token(user, auth) do + Token.Response.build_for_mfa_token(user, token) + end + end + @spec validate_scopes(App.t(), map()) :: {:ok, list()} | {:error, :missing_scopes | :unsupported_scopes} defp validate_scopes(%App{} = app, params) do diff --git a/lib/pleroma/web/oauth/token/clean_worker.ex b/lib/pleroma/web/oauth/token/clean_worker.ex new file mode 100644 index 000000000..e3aa4eb7e --- /dev/null +++ b/lib/pleroma/web/oauth/token/clean_worker.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.OAuth.Token.CleanWorker do + @moduledoc """ + The module represents functions to clean an expired OAuth and MFA tokens. + """ + use GenServer + + @ten_seconds 10_000 + @one_day 86_400_000 + + alias Pleroma.MFA + alias Pleroma.Web.OAuth + alias Pleroma.Workers.BackgroundWorker + + def start_link(_), do: GenServer.start_link(__MODULE__, %{}) + + def init(_) do + Process.send_after(self(), :perform, @ten_seconds) + {:ok, nil} + end + + @doc false + def handle_info(:perform, state) do + BackgroundWorker.enqueue("clean_expired_tokens", %{}) + interval = Pleroma.Config.get([:oauth2, :clean_expired_tokens_interval], @one_day) + + Process.send_after(self(), :perform, interval) + {:noreply, state} + end + + def perform(:clean) do + OAuth.Token.delete_expired_tokens() + MFA.Token.delete_expired_tokens() + end +end diff --git a/lib/pleroma/web/oauth/token/response.ex b/lib/pleroma/web/oauth/token/response.ex index 6f4713dee..0e72c31e9 100644 --- a/lib/pleroma/web/oauth/token/response.ex +++ b/lib/pleroma/web/oauth/token/response.ex @@ -5,6 +5,7 @@ defmodule Pleroma.Web.OAuth.Token.Response do @moduledoc false + alias Pleroma.MFA alias Pleroma.User alias Pleroma.Web.OAuth.Token.Utils @@ -32,5 +33,13 @@ def build_for_client_credentials(token) do } end + def build_for_mfa_token(user, mfa_token) do + %{ + error: "mfa_required", + mfa_token: mfa_token.token, + supported_challenge_types: MFA.supported_methods(user) + } + end + defp expires_in, do: Pleroma.Config.get([:oauth2, :token_expires_in], 600) end diff --git a/lib/pleroma/web/ostatus/ostatus_controller.ex b/lib/pleroma/web/ostatus/ostatus_controller.ex index 6fd3cfce5..de1b0b3f0 100644 --- a/lib/pleroma/web/ostatus/ostatus_controller.ex +++ b/lib/pleroma/web/ostatus/ostatus_controller.ex @@ -17,7 +17,7 @@ defmodule Pleroma.Web.OStatus.OStatusController do alias Pleroma.Web.Router plug(Pleroma.Plugs.EnsureAuthenticatedPlug, - unless_func: &Pleroma.Web.FederatingPlug.federating?/0 + unless_func: &Pleroma.Web.FederatingPlug.federating?/1 ) plug( @@ -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 be7477867..0a3f45620 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 @@ -18,6 +18,13 @@ defmodule Pleroma.Web.PleromaAPI.AccountController do require Pleroma.Constants + plug( + OpenApiSpex.Plug.PutApiSpec, + [module: Pleroma.Web.ApiSpec] when action == :confirmation_resend + ) + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug( :skip_plug, [OAuthScopesPlug, EnsurePublicOrAuthenticatedPlug] when action == :confirmation_resend @@ -49,9 +56,11 @@ defmodule Pleroma.Web.PleromaAPI.AccountController do plug(:assign_account_by_id when action in [:favourites, :subscribe, :unsubscribe]) plug(:put_view, Pleroma.Web.MastodonAPI.AccountView) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaAccountOperation + @doc "POST /api/v1/pleroma/accounts/confirmation_resend" def confirmation_resend(conn, params) do - nickname_or_email = params["email"] || params["nickname"] + nickname_or_email = params[:email] || params[:nickname] with %User{} = user <- User.get_by_nickname_or_email(nickname_or_email), {:ok, _} <- User.try_send_confirmation_email(user) do @@ -60,7 +69,7 @@ def confirmation_resend(conn, params) do end @doc "PATCH /api/v1/pleroma/accounts/update_avatar" - def update_avatar(%{assigns: %{user: user}} = conn, %{"img" => ""}) do + def update_avatar(%{assigns: %{user: user}, body_params: %{img: ""}} = conn, _) do {:ok, _user} = user |> Changeset.change(%{avatar: nil}) @@ -69,7 +78,7 @@ def update_avatar(%{assigns: %{user: user}} = conn, %{"img" => ""}) do json(conn, %{url: nil}) end - def update_avatar(%{assigns: %{user: user}} = conn, params) do + def update_avatar(%{assigns: %{user: user}, body_params: params} = conn, _params) do {:ok, %{data: data}} = ActivityPub.upload(params, type: :avatar) {:ok, _user} = user |> Changeset.change(%{avatar: data}) |> User.update_and_set_cache() %{"url" => [%{"href" => href} | _]} = data @@ -78,14 +87,14 @@ def update_avatar(%{assigns: %{user: user}} = conn, params) do end @doc "PATCH /api/v1/pleroma/accounts/update_banner" - def update_banner(%{assigns: %{user: user}} = conn, %{"banner" => ""}) do + def update_banner(%{assigns: %{user: user}, body_params: %{banner: ""}} = conn, _) do with {:ok, _user} <- User.update_banner(user, %{}) do json(conn, %{url: nil}) end end - def update_banner(%{assigns: %{user: user}} = conn, params) do - with {:ok, object} <- ActivityPub.upload(%{"img" => params["banner"]}, type: :banner), + def update_banner(%{assigns: %{user: user}, body_params: params} = conn, _) do + with {:ok, object} <- ActivityPub.upload(%{img: params[:banner]}, type: :banner), {:ok, _user} <- User.update_banner(user, object.data) do %{"url" => [%{"href" => href} | _]} = object.data @@ -94,13 +103,13 @@ def update_banner(%{assigns: %{user: user}} = conn, params) do end @doc "PATCH /api/v1/pleroma/accounts/update_background" - def update_background(%{assigns: %{user: user}} = conn, %{"img" => ""}) do + def update_background(%{assigns: %{user: user}, body_params: %{img: ""}} = conn, _) do with {:ok, _user} <- User.update_background(user, %{}) do json(conn, %{url: nil}) end end - def update_background(%{assigns: %{user: user}} = conn, params) do + def update_background(%{assigns: %{user: user}, body_params: params} = conn, _) do with {:ok, object} <- ActivityPub.upload(params, type: :background), {:ok, _user} <- User.update_background(user, object.data) do %{"url" => [%{"href" => href} | _]} = object.data @@ -117,6 +126,7 @@ 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) @@ -139,8 +149,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/conversation_controller.ex b/lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex new file mode 100644 index 000000000..21d5eb8d5 --- /dev/null +++ b/lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex @@ -0,0 +1,95 @@ +# 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.new(fn {key, value} -> {to_string(key), value} end) + |> 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 77% 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..d1efdeb5d 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) 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}) do name = String.trim(name) with {:ok, pack} <- Pack.show(name) 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 1bdb3aa4d..000000000 --- a/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex +++ /dev/null @@ -1,216 +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, _object} <- 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, _object} <- 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..8665ca56c 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,18 @@ 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 = + params + |> Map.new(fn {key, value} -> {to_string(key), value} end) + |> Map.put("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 new file mode 100644 index 000000000..b86791d09 --- /dev/null +++ b/lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex @@ -0,0 +1,133 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.TwoFactorAuthenticationController do + @moduledoc "The module represents actions to manage MFA" + use Pleroma.Web, :controller + + import Pleroma.Web.ControllerHelper, only: [json_response: 3] + + alias Pleroma.MFA + alias Pleroma.MFA.TOTP + alias Pleroma.Plugs.OAuthScopesPlug + alias Pleroma.Web.CommonAPI.Utils + + plug(OAuthScopesPlug, %{scopes: ["read:security"]} when action in [:settings]) + + plug( + OAuthScopesPlug, + %{scopes: ["write:security"]} when action in [:setup, :confirm, :disable, :backup_codes] + ) + + @doc """ + Gets user multi factor authentication settings + + ## Endpoint + GET /api/pleroma/accounts/mfa + + """ + def settings(%{assigns: %{user: user}} = conn, _params) do + json(conn, %{settings: MFA.mfa_settings(user)}) + end + + @doc """ + Prepare setup mfa method + + ## Endpoint + GET /api/pleroma/accounts/mfa/setup/[:method] + + """ + def setup(%{assigns: %{user: user}} = conn, %{"method" => "totp"} = _params) do + with {:ok, user} <- MFA.setup_totp(user), + %{secret: secret} = _ <- user.multi_factor_authentication_settings.totp do + provisioning_uri = TOTP.provisioning_uri(secret, "#{user.email}") + + json(conn, %{provisioning_uri: provisioning_uri, key: secret}) + else + {:error, message} -> + json_response(conn, :unprocessable_entity, %{error: message}) + end + end + + def setup(conn, _params) do + json_response(conn, :bad_request, %{error: "undefined method"}) + end + + @doc """ + Confirms setup and enable mfa method + + ## Endpoint + POST /api/pleroma/accounts/mfa/confirm/:method + + - params: + `code` - confirmation code + `password` - current password + """ + def confirm( + %{assigns: %{user: user}} = conn, + %{"method" => "totp", "password" => _, "code" => _} = params + ) do + with {:ok, _user} <- Utils.confirm_current_password(user, params["password"]), + {:ok, _user} <- MFA.confirm_totp(user, params) do + json(conn, %{}) + else + {:error, message} -> + json_response(conn, :unprocessable_entity, %{error: message}) + end + end + + def confirm(conn, _) do + json_response(conn, :bad_request, %{error: "undefined mfa method"}) + end + + @doc """ + Disable mfa method and disable mfa if need. + """ + def disable(%{assigns: %{user: user}} = conn, %{"method" => "totp"} = params) do + with {:ok, user} <- Utils.confirm_current_password(user, params["password"]), + {:ok, _user} <- MFA.disable_totp(user) do + json(conn, %{}) + else + {:error, message} -> + json_response(conn, :unprocessable_entity, %{error: message}) + end + end + + def disable(%{assigns: %{user: user}} = conn, %{"method" => "mfa"} = params) do + with {:ok, user} <- Utils.confirm_current_password(user, params["password"]), + {:ok, _user} <- MFA.disable(user) do + json(conn, %{}) + else + {:error, message} -> + json_response(conn, :unprocessable_entity, %{error: message}) + end + end + + def disable(conn, _) do + json_response(conn, :bad_request, %{error: "undefined mfa method"}) + end + + @doc """ + Generates backup codes. + + ## Endpoint + GET /api/pleroma/accounts/mfa/backup_codes + + ## Response + ### Success + `{codes: [codes]}` + + ### Error + `{error: [error_message]}` + + """ + def backup_codes(%{assigns: %{user: user}} = conn, _params) do + with {:ok, codes} <- MFA.generate_backup_codes(user) do + json(conn, %{codes: codes}) + else + {:error, message} -> + json_response(conn, :unprocessable_entity, %{error: message}) + end + 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/push/impl.ex b/lib/pleroma/web/push/impl.ex index a9f893f7b..691725702 100644 --- a/lib/pleroma/web/push/impl.ex +++ b/lib/pleroma/web/push/impl.ex @@ -106,14 +106,13 @@ def build_content(notification, actor, object, mastodon_type \\ nil) def build_content( %{ - activity: %{data: %{"directMessage" => true}}, user: %{notification_settings: %{privacy_option: true}} - }, - actor, + } = notification, + _actor, _object, - _mastodon_type + mastodon_type ) do - %{title: "New Direct Message", body: "@#{actor.nickname}"} + %{body: format_title(notification, mastodon_type)} end def build_content(notification, actor, object, mastodon_type) do diff --git a/lib/pleroma/web/push/subscription.ex b/lib/pleroma/web/push/subscription.ex index b99b0c5fb..3e401a490 100644 --- a/lib/pleroma/web/push/subscription.ex +++ b/lib/pleroma/web/push/subscription.ex @@ -25,9 +25,9 @@ defmodule Pleroma.Web.Push.Subscription do timestamps() end - @supported_alert_types ~w[follow favourite mention reblog] + @supported_alert_types ~w[follow favourite mention reblog]a - defp alerts(%{"data" => %{"alerts" => alerts}}) do + defp alerts(%{data: %{alerts: alerts}}) do alerts = Map.take(alerts, @supported_alert_types) %{"alerts" => alerts} end @@ -44,9 +44,9 @@ def create( %User{} = user, %Token{} = token, %{ - "subscription" => %{ - "endpoint" => endpoint, - "keys" => %{"auth" => key_auth, "p256dh" => key_p256dh} + subscription: %{ + endpoint: endpoint, + keys: %{auth: key_auth, p256dh: key_p256dh} } } = params ) do diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 5b00243e9..e493a4153 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -132,6 +132,7 @@ defmodule Pleroma.Web.Router do post("/users/follow", AdminAPIController, :user_follow) post("/users/unfollow", AdminAPIController, :user_unfollow) + put("/users/disable_mfa", AdminAPIController, :disable_mfa) delete("/users", AdminAPIController, :user_delete) post("/users", AdminAPIController, :users_create) patch("/users/:nickname/toggle_activation", AdminAPIController, :user_toggle_activation) @@ -188,9 +189,10 @@ defmodule Pleroma.Web.Router do post("/reports/:id/notes", AdminAPIController, :report_notes_create) delete("/reports/:report_id/notes/:id", AdminAPIController, :report_notes_delete) - 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) @@ -214,24 +216,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 @@ -257,6 +260,16 @@ defmodule Pleroma.Web.Router do post("/follow_import", UtilController, :follow_import) end + scope "/api/pleroma", Pleroma.Web.PleromaAPI do + pipe_through(:authenticated_api) + + get("/accounts/mfa", TwoFactorAuthenticationController, :settings) + get("/accounts/mfa/backup_codes", TwoFactorAuthenticationController, :backup_codes) + get("/accounts/mfa/setup/:method", TwoFactorAuthenticationController, :setup) + post("/accounts/mfa/confirm/:method", TwoFactorAuthenticationController, :confirm) + delete("/accounts/mfa/:method", TwoFactorAuthenticationController, :disable) + end + scope "/oauth", Pleroma.Web.OAuth do scope [] do pipe_through(:oauth) @@ -268,6 +281,10 @@ defmodule Pleroma.Web.Router do post("/revoke", OAuthController, :token_revoke) get("/registration_details", OAuthController, :registration_details) + post("/mfa/challenge", MFAController, :challenge) + post("/mfa/verify", MFAController, :verify, as: :mfa_verify) + get("/mfa", MFAController, :show) + scope [] do pipe_through(:browser) @@ -281,26 +298,22 @@ 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 + get("/conversations/:id/statuses", ConversationController, :statuses) + get("/conversations/:id", ConversationController, :show) + post("/conversations/read", ConversationController, :mark_as_read) + patch("/conversations/:id", ConversationController, :update) - scope [] do - pipe_through(:authenticated_api) - - 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) @@ -309,7 +322,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 @@ -329,7 +342,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 @@ -387,6 +400,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) @@ -426,7 +440,7 @@ defmodule Pleroma.Web.Router do post("/statuses/:id/unmute", StatusController, :unmute_conversation) post("/push/subscription", SubscriptionController, :create) - get("/push/subscription", SubscriptionController, :get) + get("/push/subscription", SubscriptionController, :show) put("/push/subscription", SubscriptionController, :update) delete("/push/subscription", SubscriptionController, :delete) @@ -481,6 +495,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 @@ -540,6 +556,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) diff --git a/lib/pleroma/web/static_fe/static_fe_controller.ex b/lib/pleroma/web/static_fe/static_fe_controller.ex index 7a35238d7..c3efb6651 100644 --- a/lib/pleroma/web/static_fe/static_fe_controller.ex +++ b/lib/pleroma/web/static_fe/static_fe_controller.ex @@ -18,7 +18,7 @@ defmodule Pleroma.Web.StaticFE.StaticFEController do plug(:assign_id) plug(Pleroma.Plugs.EnsureAuthenticatedPlug, - unless_func: &Pleroma.Web.FederatingPlug.federating?/0 + unless_func: &Pleroma.Web.FederatingPlug.federating?/1 ) @page_keys ["max_id", "min_id", "limit", "since_id", "order"] diff --git a/lib/pleroma/web/streamer/ping.ex b/lib/pleroma/web/streamer/ping.ex deleted file mode 100644 index 7a08202a9..000000000 --- a/lib/pleroma/web/streamer/ping.ex +++ /dev/null @@ -1,37 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.Streamer.Ping do - use GenServer - require Logger - - alias Pleroma.Web.Streamer.State - alias Pleroma.Web.Streamer.StreamerSocket - - @keepalive_interval :timer.seconds(30) - - def start_link(opts) do - ping_interval = Keyword.get(opts, :ping_interval, @keepalive_interval) - GenServer.start_link(__MODULE__, %{ping_interval: ping_interval}, name: __MODULE__) - end - - def init(%{ping_interval: ping_interval} = args) do - Process.send_after(self(), :ping, ping_interval) - {:ok, args} - end - - def handle_info(:ping, %{ping_interval: ping_interval} = state) do - State.get_sockets() - |> Map.values() - |> List.flatten() - |> Enum.each(fn %StreamerSocket{transport_pid: transport_pid} -> - Logger.debug("Sending keepalive ping") - send(transport_pid, {:text, ""}) - end) - - Process.send_after(self(), :ping, ping_interval) - - {:noreply, state} - end -end diff --git a/lib/pleroma/web/streamer/state.ex b/lib/pleroma/web/streamer/state.ex deleted file mode 100644 index 999550b88..000000000 --- a/lib/pleroma/web/streamer/state.ex +++ /dev/null @@ -1,82 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.Streamer.State do - use GenServer - require Logger - - alias Pleroma.Web.Streamer.StreamerSocket - - @env Mix.env() - - def start_link(_) do - GenServer.start_link(__MODULE__, %{sockets: %{}}, name: __MODULE__) - end - - def add_socket(topic, socket) do - GenServer.call(__MODULE__, {:add, topic, socket}) - end - - def remove_socket(topic, socket) do - do_remove_socket(@env, topic, socket) - end - - def get_sockets do - %{sockets: stream_sockets} = GenServer.call(__MODULE__, :get_state) - stream_sockets - end - - def init(init_arg) do - {:ok, init_arg} - end - - def handle_call(:get_state, _from, state) do - {:reply, state, state} - end - - def handle_call({:add, topic, socket}, _from, %{sockets: sockets} = state) do - internal_topic = internal_topic(topic, socket) - stream_socket = StreamerSocket.from_socket(socket) - - sockets_for_topic = - sockets - |> Map.get(internal_topic, []) - |> List.insert_at(0, stream_socket) - |> Enum.uniq() - - state = put_in(state, [:sockets, internal_topic], sockets_for_topic) - Logger.debug("Got new conn for #{topic}") - {:reply, state, state} - end - - def handle_call({:remove, topic, socket}, _from, %{sockets: sockets} = state) do - internal_topic = internal_topic(topic, socket) - stream_socket = StreamerSocket.from_socket(socket) - - sockets_for_topic = - sockets - |> Map.get(internal_topic, []) - |> List.delete(stream_socket) - - state = Kernel.put_in(state, [:sockets, internal_topic], sockets_for_topic) - {:reply, state, state} - end - - defp do_remove_socket(:test, _, _) do - :ok - end - - defp do_remove_socket(_env, topic, socket) do - GenServer.call(__MODULE__, {:remove, topic, socket}) - end - - defp internal_topic(topic, socket) - when topic in ~w[user user:notification direct] do - "#{topic}:#{socket.assigns[:user].id}" - end - - defp internal_topic(topic, _) do - topic - end -end diff --git a/lib/pleroma/web/streamer/streamer.ex b/lib/pleroma/web/streamer/streamer.ex index 814d5a729..0cf41189b 100644 --- a/lib/pleroma/web/streamer/streamer.ex +++ b/lib/pleroma/web/streamer/streamer.ex @@ -3,53 +3,288 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Streamer do - alias Pleroma.Web.Streamer.State - alias Pleroma.Web.Streamer.Worker + require Logger + + alias Pleroma.Activity + alias Pleroma.Config + alias Pleroma.Conversation.Participation + alias Pleroma.Notification + alias Pleroma.Object + alias Pleroma.User + alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.ActivityPub.Visibility + alias Pleroma.Web.CommonAPI + alias Pleroma.Web.StreamerView - @timeout 60_000 @mix_env Mix.env() + @registry Pleroma.Web.StreamerRegistry - def add_socket(topic, socket) do - State.add_socket(topic, socket) + def registry, do: @registry + + @public_streams ["public", "public:local", "public:media", "public:local:media"] + @user_streams ["user", "user:notification", "direct"] + + @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) :: + {:ok, topic :: String.t()} | {:error, :bad_topic} | {:error, :unauthorized} + def get_topic_and_add_socket(stream, user, params \\ %{}) do + case get_topic(stream, user, params) do + {:ok, topic} -> add_socket(topic, user) + error -> error + end end - def remove_socket(topic, socket) do - State.remove_socket(topic, socket) + @doc "Expand and authorizes a stream" + @spec get_topic(stream :: String.t(), User.t() | nil, Map.t()) :: + {:ok, topic :: String.t()} | {:error, :bad_topic} + def get_topic(stream, user, params \\ %{}) + + # Allow all public steams. + def get_topic(stream, _, _) when stream in @public_streams do + {:ok, stream} end - def get_sockets do - State.get_sockets() + # Allow all hashtags streams. + def get_topic("hashtag", _, %{"tag" => tag}) do + {:ok, "hashtag:" <> tag} end - def stream(topics, items) do - if should_send?() do - Task.async(fn -> - :poolboy.transaction( - :streamer_worker, - &Worker.stream(&1, topics, items), - @timeout - ) + # Expand user streams. + def get_topic(stream, %User{} = user, _) when stream in @user_streams do + {:ok, stream <> ":" <> to_string(user.id)} + end + + def get_topic(stream, _, _) when stream in @user_streams do + {:error, :unauthorized} + end + + # List streams. + def get_topic("list", %User{} = user, %{"list" => id}) do + if Pleroma.List.get(id, user) do + {:ok, "list:" <> to_string(id)} + else + {:error, :bad_topic} + end + end + + def get_topic("list", _, _) do + {:error, :unauthorized} + end + + def get_topic(_, _, _) do + {:error, :bad_topic} + end + + @doc "Registers the process for streaming. Use `get_topic/3` to get the full authorized topic." + def add_socket(topic, user) do + if should_env_send?() do + auth? = if user, do: true + Registry.register(@registry, topic, auth?) + end + + {:ok, topic} + end + + def remove_socket(topic) do + if should_env_send?(), do: Registry.unregister(@registry, topic) + end + + def stream(topics, item) when is_list(topics) do + if should_env_send?() do + Enum.each(topics, fn t -> + spawn(fn -> do_stream(t, item) end) end) end + + :ok end - def supervisor, do: Pleroma.Web.Streamer.Supervisor + 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) - defp should_send? do - handle_should_send(@mix_env) - end - - defp handle_should_send(:test) do - case Process.whereis(:streamer_worker) do - nil -> - false - - pid -> - Process.alive?(pid) + :ok end end - defp handle_should_send(:benchmark), do: false + def stream(topic, item) do + if should_env_send?() do + spawn(fn -> do_stream(topic, item) end) + end - defp handle_should_send(_), do: true + :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]) + + recipient_blocks = MapSet.new(blocked_ap_ids ++ muted_ap_ids) + recipients = MapSet.new(item.recipients) + domain_blocks = Pleroma.Web.ActivityPub.MRF.subdomains_regex(user.domain_blocks) + + with parent <- Object.normalize(item) || item, + true <- + Enum.all?([blocked_ap_ids, muted_ap_ids], &(item.actor not in &1)), + true <- item.data["type"] != "Announce" || item.actor not in reblog_muted_ap_ids, + true <- Enum.all?([blocked_ap_ids, muted_ap_ids], &(parent.data["actor"] not in &1)), + true <- MapSet.disjoint?(recipients, recipient_blocks), + %{host: item_host} <- URI.parse(item.actor), + %{host: parent_host} <- URI.parse(parent.data["actor"]), + 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, parent) do + false + else + _ -> true + end + end + + def filtered_by_user?(%User{} = user, %Notification{activity: activity}) do + filtered_by_user?(user, activity) + end + + defp do_stream("direct", item) do + recipient_topics = + User.get_recipients_from_activity(item) + |> Enum.map(fn %{id: id} -> "direct:#{id}" end) + + Enum.each(recipient_topics, fn user_topic -> + Logger.debug("Trying to push direct message to #{user_topic}\n\n") + push_to_socket(user_topic, item) + end) + end + + defp do_stream("participation", participation) do + user_topic = "direct:#{participation.user_id}" + Logger.debug("Trying to push a conversation participation to #{user_topic}\n\n") + + push_to_socket(user_topic, participation) + end + + defp do_stream("list", item) do + # filter the recipient list if the activity is not public, see #270. + recipient_lists = + case Visibility.is_public?(item) do + true -> + Pleroma.List.get_lists_from_activity(item) + + _ -> + Pleroma.List.get_lists_from_activity(item) + |> Enum.filter(fn list -> + owner = User.get_cached_by_id(list.user_id) + + Visibility.visible_for_user?(item, owner) + end) + end + + recipient_topics = + recipient_lists + |> Enum.map(fn %{id: id} -> "list:#{id}" end) + + Enum.each(recipient_topics, fn list_topic -> + Logger.debug("Trying to push message to #{list_topic}\n\n") + push_to_socket(list_topic, item) + end) + end + + defp do_stream(topic, %Notification{} = item) + when topic in ["user", "user:notification"] do + Registry.dispatch(@registry, "#{topic}:#{item.user_id}", fn list -> + Enum.each(list, fn {pid, _auth} -> + send(pid, {:render_with_user, StreamerView, "notification.json", item}) + end) + end) + end + + defp do_stream("user", item) do + Logger.debug("Trying to push to users") + + recipient_topics = + User.get_recipients_from_activity(item) + |> Enum.map(fn %{id: id} -> "user:#{id}" end) + + Enum.each(recipient_topics, fn topic -> + push_to_socket(topic, item) + end) + end + + defp do_stream(topic, item) do + Logger.debug("Trying to push to #{topic}") + Logger.debug("Pushing item to #{topic}") + push_to_socket(topic, item) + end + + defp push_to_socket(topic, %Participation{} = participation) do + rendered = StreamerView.render("conversation.json", participation) + + Registry.dispatch(@registry, topic, fn list -> + Enum.each(list, fn {pid, _} -> + send(pid, {:text, rendered}) + end) + end) + end + + defp push_to_socket(topic, %Activity{ + data: %{"type" => "Delete", "deleted_activity_id" => deleted_activity_id} + }) do + rendered = Jason.encode!(%{event: "delete", payload: to_string(deleted_activity_id)}) + + Registry.dispatch(@registry, topic, fn list -> + Enum.each(list, fn {pid, _} -> + send(pid, {:text, rendered}) + end) + end) + end + + defp push_to_socket(_topic, %Activity{data: %{"type" => "Delete"}}), do: :noop + + defp push_to_socket(topic, item) do + anon_render = StreamerView.render("update.json", item) + + Registry.dispatch(@registry, topic, fn list -> + Enum.each(list, fn {pid, auth?} -> + if auth? do + send(pid, {:render_with_user, StreamerView, "update.json", item}) + else + send(pid, {:text, anon_render}) + end + end) + end) + end + + defp thread_containment(_activity, %User{skip_thread_containment: true}), do: true + + defp thread_containment(activity, user) do + if Config.get([:instance, :skip_thread_containment]) do + true + else + ActivityPub.contain_activity(activity, user) + end + end + + # In test environement, only return true if the registry is started. + # In benchmark environment, returns false. + # In any other environment, always returns true. + cond do + @mix_env == :test -> + def should_env_send? do + case Process.whereis(@registry) do + nil -> + false + + pid -> + Process.alive?(pid) + end + end + + @mix_env == :benchmark -> + def should_env_send?, do: false + + true -> + def should_env_send?, do: true + end end diff --git a/lib/pleroma/web/streamer/streamer_socket.ex b/lib/pleroma/web/streamer/streamer_socket.ex deleted file mode 100644 index 7d5dcd34e..000000000 --- a/lib/pleroma/web/streamer/streamer_socket.ex +++ /dev/null @@ -1,35 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.Streamer.StreamerSocket do - defstruct transport_pid: nil, user: nil - - alias Pleroma.User - alias Pleroma.Web.Streamer.StreamerSocket - - def from_socket(%{ - transport_pid: transport_pid, - assigns: %{user: nil} - }) do - %StreamerSocket{ - transport_pid: transport_pid - } - end - - def from_socket(%{ - transport_pid: transport_pid, - assigns: %{user: %User{} = user} - }) do - %StreamerSocket{ - transport_pid: transport_pid, - user: user - } - end - - def from_socket(%{transport_pid: transport_pid}) do - %StreamerSocket{ - transport_pid: transport_pid - } - end -end diff --git a/lib/pleroma/web/streamer/supervisor.ex b/lib/pleroma/web/streamer/supervisor.ex deleted file mode 100644 index bd9029bc0..000000000 --- a/lib/pleroma/web/streamer/supervisor.ex +++ /dev/null @@ -1,37 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.Streamer.Supervisor do - use Supervisor - - def start_link(opts) do - Supervisor.start_link(__MODULE__, opts, name: __MODULE__) - end - - def init(args) do - children = [ - {Pleroma.Web.Streamer.State, args}, - {Pleroma.Web.Streamer.Ping, args}, - :poolboy.child_spec(:streamer_worker, poolboy_config()) - ] - - opts = [strategy: :one_for_one, name: Pleroma.Web.Streamer.Supervisor] - Supervisor.init(children, opts) - end - - defp poolboy_config do - opts = - Pleroma.Config.get(:streamer, - workers: 3, - overflow_workers: 2 - ) - - [ - {:name, {:local, :streamer_worker}}, - {:worker_module, Pleroma.Web.Streamer.Worker}, - {:size, opts[:workers]}, - {:max_overflow, opts[:overflow_workers]} - ] - end -end diff --git a/lib/pleroma/web/streamer/worker.ex b/lib/pleroma/web/streamer/worker.ex deleted file mode 100644 index f6160fa4d..000000000 --- a/lib/pleroma/web/streamer/worker.ex +++ /dev/null @@ -1,208 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.Streamer.Worker do - use GenServer - - require Logger - - alias Pleroma.Activity - alias Pleroma.Config - alias Pleroma.Conversation.Participation - alias Pleroma.Notification - alias Pleroma.Object - alias Pleroma.User - alias Pleroma.Web.ActivityPub.ActivityPub - alias Pleroma.Web.ActivityPub.Visibility - alias Pleroma.Web.CommonAPI - alias Pleroma.Web.Streamer.State - alias Pleroma.Web.Streamer.StreamerSocket - alias Pleroma.Web.StreamerView - - def start_link(_) do - GenServer.start_link(__MODULE__, %{}, []) - end - - def init(init_arg) do - {:ok, init_arg} - end - - def stream(pid, topics, items) do - GenServer.call(pid, {:stream, topics, items}) - end - - def handle_call({:stream, topics, item}, _from, state) when is_list(topics) do - Enum.each(topics, fn t -> - do_stream(%{topic: t, item: item}) - end) - - {:reply, state, state} - end - - def handle_call({:stream, topic, items}, _from, state) when is_list(items) do - Enum.each(items, fn i -> - do_stream(%{topic: topic, item: i}) - end) - - {:reply, state, state} - end - - def handle_call({:stream, topic, item}, _from, state) do - do_stream(%{topic: topic, item: item}) - - {:reply, state, state} - end - - defp do_stream(%{topic: "direct", item: item}) do - recipient_topics = - User.get_recipients_from_activity(item) - |> Enum.map(fn %{id: id} -> "direct:#{id}" end) - - Enum.each(recipient_topics, fn user_topic -> - Logger.debug("Trying to push direct message to #{user_topic}\n\n") - push_to_socket(State.get_sockets(), user_topic, item) - end) - end - - defp do_stream(%{topic: "participation", item: participation}) do - user_topic = "direct:#{participation.user_id}" - Logger.debug("Trying to push a conversation participation to #{user_topic}\n\n") - - push_to_socket(State.get_sockets(), user_topic, participation) - end - - defp do_stream(%{topic: "list", item: item}) do - # filter the recipient list if the activity is not public, see #270. - recipient_lists = - case Visibility.is_public?(item) do - true -> - Pleroma.List.get_lists_from_activity(item) - - _ -> - Pleroma.List.get_lists_from_activity(item) - |> Enum.filter(fn list -> - owner = User.get_cached_by_id(list.user_id) - - Visibility.visible_for_user?(item, owner) - end) - end - - recipient_topics = - recipient_lists - |> Enum.map(fn %{id: id} -> "list:#{id}" end) - - Enum.each(recipient_topics, fn list_topic -> - Logger.debug("Trying to push message to #{list_topic}\n\n") - push_to_socket(State.get_sockets(), list_topic, item) - end) - end - - defp do_stream(%{topic: topic, item: %Notification{} = item}) - when topic in ["user", "user:notification"] do - State.get_sockets() - |> Map.get("#{topic}:#{item.user_id}", []) - |> Enum.each(fn %StreamerSocket{transport_pid: transport_pid, user: socket_user} -> - with %User{} = user <- User.get_cached_by_ap_id(socket_user.ap_id), - true <- should_send?(user, item) do - send(transport_pid, {:text, StreamerView.render("notification.json", socket_user, item)}) - end - end) - end - - defp do_stream(%{topic: "user", item: item}) do - Logger.debug("Trying to push to users") - - recipient_topics = - User.get_recipients_from_activity(item) - |> Enum.map(fn %{id: id} -> "user:#{id}" end) - - Enum.each(recipient_topics, fn topic -> - push_to_socket(State.get_sockets(), topic, item) - end) - end - - defp do_stream(%{topic: topic, item: item}) do - Logger.debug("Trying to push to #{topic}") - Logger.debug("Pushing item to #{topic}") - push_to_socket(State.get_sockets(), topic, item) - end - - defp should_send?(%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]) - - recipient_blocks = MapSet.new(blocked_ap_ids ++ muted_ap_ids) - recipients = MapSet.new(item.recipients) - domain_blocks = Pleroma.Web.ActivityPub.MRF.subdomains_regex(user.domain_blocks) - - with parent <- Object.normalize(item) || item, - true <- - Enum.all?([blocked_ap_ids, muted_ap_ids], &(item.actor not in &1)), - true <- item.data["type"] != "Announce" || item.actor not in reblog_muted_ap_ids, - true <- Enum.all?([blocked_ap_ids, muted_ap_ids], &(parent.data["actor"] not in &1)), - true <- MapSet.disjoint?(recipients, recipient_blocks), - %{host: item_host} <- URI.parse(item.actor), - %{host: parent_host} <- URI.parse(parent.data["actor"]), - 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 - true - else - _ -> false - end - end - - defp should_send?(%User{} = user, %Notification{activity: activity}) do - should_send?(user, activity) - end - - def push_to_socket(topics, topic, %Participation{} = participation) do - Enum.each(topics[topic] || [], fn %StreamerSocket{transport_pid: transport_pid} -> - send(transport_pid, {:text, StreamerView.render("conversation.json", participation)}) - end) - end - - def push_to_socket(topics, topic, %Activity{ - data: %{"type" => "Delete", "deleted_activity_id" => deleted_activity_id} - }) do - Enum.each(topics[topic] || [], fn %StreamerSocket{transport_pid: transport_pid} -> - send( - transport_pid, - {:text, %{event: "delete", payload: to_string(deleted_activity_id)} |> Jason.encode!()} - ) - end) - end - - def push_to_socket(_topics, _topic, %Activity{data: %{"type" => "Delete"}}), do: :noop - - def push_to_socket(topics, topic, item) do - Enum.each(topics[topic] || [], fn %StreamerSocket{ - transport_pid: transport_pid, - user: socket_user - } -> - # Get the current user so we have up-to-date blocks etc. - if socket_user do - user = User.get_cached_by_ap_id(socket_user.ap_id) - - if should_send?(user, item) do - send(transport_pid, {:text, StreamerView.render("update.json", item, user)}) - end - else - send(transport_pid, {:text, StreamerView.render("update.json", item)}) - end - end) - end - - @spec thread_containment(Activity.t(), User.t()) :: boolean() - defp thread_containment(_activity, %User{skip_thread_containment: true}), do: true - - defp thread_containment(activity, user) do - if Config.get([:instance, :skip_thread_containment]) do - true - else - ActivityPub.contain_activity(activity, user) - end - end -end diff --git a/lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex b/lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex new file mode 100644 index 000000000..750f65386 --- /dev/null +++ b/lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex @@ -0,0 +1,24 @@ +<%= if get_flash(@conn, :info) do %> + +<% end %> +<%= if get_flash(@conn, :error) do %> + +<% end %> + +

Two-factor recovery

+ +<%= form_for @conn, mfa_verify_path(@conn, :verify), [as: "mfa"], fn f -> %> +
+ <%= label f, :code, "Recovery code" %> + <%= text_input f, :code %> + <%= hidden_input f, :mfa_token, value: @mfa_token %> + <%= hidden_input f, :state, value: @state %> + <%= hidden_input f, :redirect_uri, value: @redirect_uri %> + <%= hidden_input f, :challenge_type, value: "recovery" %> +
+ +<%= submit "Verify" %> +<% end %> +"> + Enter a two-factor code + diff --git a/lib/pleroma/web/templates/o_auth/mfa/totp.html.eex b/lib/pleroma/web/templates/o_auth/mfa/totp.html.eex new file mode 100644 index 000000000..af6e546b0 --- /dev/null +++ b/lib/pleroma/web/templates/o_auth/mfa/totp.html.eex @@ -0,0 +1,24 @@ +<%= if get_flash(@conn, :info) do %> + +<% end %> +<%= if get_flash(@conn, :error) do %> + +<% end %> + +

Two-factor authentication

+ +<%= form_for @conn, mfa_verify_path(@conn, :verify), [as: "mfa"], fn f -> %> +
+ <%= label f, :code, "Authentication code" %> + <%= text_input f, :code %> + <%= hidden_input f, :mfa_token, value: @mfa_token %> + <%= hidden_input f, :state, value: @state %> + <%= hidden_input f, :redirect_uri, value: @redirect_uri %> + <%= hidden_input f, :challenge_type, value: "totp" %> +
+ +<%= submit "Verify" %> +<% end %> +"> + Enter a two-factor recovery code + diff --git a/lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex b/lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex new file mode 100644 index 000000000..adc3a3e3d --- /dev/null +++ b/lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex @@ -0,0 +1,13 @@ +<%= if @error do %> +

<%= @error %>

+<% end %> +

Two-factor authentication

+

<%= @followee.nickname %>

+ +<%= form_for @conn, remote_follow_path(@conn, :do_follow), [as: "mfa"], fn f -> %> +<%= text_input f, :code, placeholder: "Authentication code", required: true %> +
+<%= hidden_input f, :id, value: @followee.id %> +<%= hidden_input f, :token, value: @mfa_token %> +<%= submit "Authorize" %> +<% end %> diff --git a/lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex b/lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex index 89da760da..521dc9322 100644 --- a/lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex +++ b/lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex @@ -8,10 +8,12 @@ defmodule Pleroma.Web.TwitterAPI.RemoteFollowController do require Logger alias Pleroma.Activity + alias Pleroma.MFA alias Pleroma.Object.Fetcher alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.User alias Pleroma.Web.Auth.Authenticator + alias Pleroma.Web.Auth.TOTPAuthenticator alias Pleroma.Web.CommonAPI @status_types ["Article", "Event", "Note", "Video", "Page", "Question"] @@ -68,6 +70,8 @@ defp is_status?(acct) do # POST /ostatus_subscribe # + # adds a remote account in followers if user already is signed in. + # def do_follow(%{assigns: %{user: %User{} = user}} = conn, %{"user" => %{"id" => id}}) do with {:fetch_user, %User{} = followee} <- {:fetch_user, User.get_cached_by_id(id)}, {:ok, _, _, _} <- CommonAPI.follow(user, followee) do @@ -78,9 +82,33 @@ def do_follow(%{assigns: %{user: %User{} = user}} = conn, %{"user" => %{"id" => end end + # POST /ostatus_subscribe + # + # step 1. + # checks login\password and displays step 2 form of MFA if need. + # def do_follow(conn, %{"authorization" => %{"name" => _, "password" => _, "id" => id}}) do - with {:fetch_user, %User{} = followee} <- {:fetch_user, User.get_cached_by_id(id)}, + with {_, %User{} = followee} <- {:fetch_user, User.get_cached_by_id(id)}, {_, {:ok, user}, _} <- {:auth, Authenticator.get_user(conn), followee}, + {_, _, _, false} <- {:mfa_required, followee, user, MFA.require?(user)}, + {:ok, _, _, _} <- CommonAPI.follow(user, followee) do + redirect(conn, to: "/users/#{followee.id}") + else + error -> + handle_follow_error(conn, error) + end + end + + # POST /ostatus_subscribe + # + # step 2 + # checks TOTP code. otherwise displays form with errors + # + def do_follow(conn, %{"mfa" => %{"code" => code, "token" => token, "id" => id}}) do + with {_, %User{} = followee} <- {:fetch_user, User.get_cached_by_id(id)}, + {_, _, {:ok, %{user: user}}} <- {:mfa_token, followee, MFA.Token.validate(token)}, + {_, _, _, {:ok, _}} <- + {:verify_mfa_code, followee, token, TOTPAuthenticator.verify(code, user)}, {:ok, _, _, _} <- CommonAPI.follow(user, followee) do redirect(conn, to: "/users/#{followee.id}") else @@ -94,6 +122,23 @@ def do_follow(%{assigns: %{user: nil}} = conn, _) do render(conn, "followed.html", %{error: "Insufficient permissions: follow | write:follows."}) end + defp handle_follow_error(conn, {:mfa_token, followee, _} = _) do + render(conn, "follow_login.html", %{error: "Wrong username or password", followee: followee}) + end + + defp handle_follow_error(conn, {:verify_mfa_code, followee, token, _} = _) do + render(conn, "follow_mfa.html", %{ + error: "Wrong authentication code", + followee: followee, + mfa_token: token + }) + end + + defp handle_follow_error(conn, {:mfa_required, followee, user, _} = _) do + {:ok, %{token: token}} = MFA.Token.create_token(user) + render(conn, "follow_mfa.html", %{followee: followee, mfa_token: token, error: false}) + end + defp handle_follow_error(conn, {:auth, _, followee} = _) do render(conn, "follow_login.html", %{error: "Wrong username or password", followee: followee}) end diff --git a/lib/pleroma/web/views/streamer_view.ex b/lib/pleroma/web/views/streamer_view.ex index 443868878..237b29ded 100644 --- a/lib/pleroma/web/views/streamer_view.ex +++ b/lib/pleroma/web/views/streamer_view.ex @@ -25,7 +25,7 @@ def render("update.json", %Activity{} = activity, %User{} = user) do |> Jason.encode!() end - def render("notification.json", %User{} = user, %Notification{} = notify) do + def render("notification.json", %Notification{} = notify, %User{} = user) do %{ event: "notification", payload: diff --git a/lib/pleroma/web/web.ex b/lib/pleroma/web/web.ex index 08e42a7e5..4f9281851 100644 --- a/lib/pleroma/web/web.ex +++ b/lib/pleroma/web/web.ex @@ -200,11 +200,17 @@ def skip_plug(conn) do @impl Plug @doc """ - If marked as skipped, returns `conn`, otherwise calls `perform/2`. + Before-plug hook that + * ensures the plug is not skipped + * processes `:if_func` / `:unless_func` functional pre-run conditions + * adds plug to the list of called plugs and calls `perform/2` if checks are passed + Note: multiple invocations of the same plug (with different or same options) are allowed. """ def call(%Plug.Conn{} = conn, options) do - if PlugHelper.plug_skipped?(conn, __MODULE__) do + if PlugHelper.plug_skipped?(conn, __MODULE__) || + (options[:if_func] && !options[:if_func].(conn)) || + (options[:unless_func] && options[:unless_func].(conn)) do conn else conn = diff --git a/lib/pleroma/web/web_finger/web_finger.ex b/lib/pleroma/web/web_finger/web_finger.ex index 7ffd0e51b..71ccf251a 100644 --- a/lib/pleroma/web/web_finger/web_finger.ex +++ b/lib/pleroma/web/web_finger/web_finger.ex @@ -86,54 +86,24 @@ def represent_user(user, "XML") do |> XmlBuilder.to_doc() end - defp get_magic_key("data:application/magic-public-key," <> magic_key) do - {:ok, magic_key} - end - - defp get_magic_key(nil) do - Logger.debug("Undefined magic key.") - {:ok, nil} - end - - defp get_magic_key(_) do - {:error, "Missing magic key data."} - end - defp webfinger_from_xml(doc) do - with magic_key <- XML.string_from_xpath(~s{//Link[@rel="magic-public-key"]/@href}, doc), - {:ok, magic_key} <- get_magic_key(magic_key), - topic <- - XML.string_from_xpath( - ~s{//Link[@rel="http://schemas.google.com/g/2010#updates-from"]/@href}, - doc - ), - subject <- XML.string_from_xpath("//Subject", doc), - subscribe_address <- - XML.string_from_xpath( - ~s{//Link[@rel="http://ostatus.org/schema/1.0/subscribe"]/@template}, - doc - ), - ap_id <- - XML.string_from_xpath( - ~s{//Link[@rel="self" and @type="application/activity+json"]/@href}, - doc - ) do - data = %{ - "magic_key" => magic_key, - "topic" => topic, - "subject" => subject, - "subscribe_address" => subscribe_address, - "ap_id" => ap_id - } + subject = XML.string_from_xpath("//Subject", doc) - {:ok, data} - else - {:error, e} -> - {:error, e} + subscribe_address = + ~s{//Link[@rel="http://ostatus.org/schema/1.0/subscribe"]/@template} + |> XML.string_from_xpath(doc) - e -> - {:error, e} - end + ap_id = + ~s{//Link[@rel="self" and @type="application/activity+json"]/@href} + |> XML.string_from_xpath(doc) + + data = %{ + "subject" => subject, + "subscribe_address" => subscribe_address, + "ap_id" => ap_id + } + + {:ok, data} end defp webfinger_from_json(doc) do @@ -146,9 +116,6 @@ defp webfinger_from_json(doc) do {"application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"", "self"} -> Map.put(data, "ap_id", link["href"]) - {_, "http://ostatus.org/schema/1.0/subscribe"} -> - Map.put(data, "subscribe_address", link["template"]) - _ -> Logger.debug("Unhandled type: #{inspect(link["type"])}") data @@ -194,13 +161,15 @@ def finger(account) do URI.parse(account).host end + encoded_account = URI.encode("acct:#{account}") + address = case find_lrdd_template(domain) do {:ok, template} -> - String.replace(template, "{uri}", URI.encode(account)) + String.replace(template, "{uri}", encoded_account) _ -> - "https://#{domain}/.well-known/webfinger?resource=acct:#{account}" + "https://#{domain}/.well-known/webfinger?resource=#{encoded_account}" end with response <- diff --git a/lib/pleroma/workers/attachments_cleanup_worker.ex b/lib/pleroma/workers/attachments_cleanup_worker.ex index 3c5820a86..49352db2a 100644 --- a/lib/pleroma/workers/attachments_cleanup_worker.ex +++ b/lib/pleroma/workers/attachments_cleanup_worker.ex @@ -27,8 +27,20 @@ def perform( 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()), + "/" + ) + # find all objects for copies of the attachments, name and actor doesn't matter here - delete_ids = + object_ids_and_hrefs = from(o in Object, where: fragment( @@ -67,29 +79,28 @@ def perform( |> 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 + href + |> String.trim_leading("#{base_url}/#{prefix}") + |> uploader.delete_file() - 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) + {id, href} + else + _ -> {id, nil} end - - id end) - from(o in Object, where: o.id in ^delete_ids) + object_ids = Enum.map(object_ids_and_hrefs, fn {id, _} -> id end) + + from(o in Object, where: o.id in ^object_ids) |> Repo.delete_all() + + object_ids_and_hrefs + |> Enum.filter(fn {_, href} -> not is_nil(href) end) + |> Enum.map(&elem(&1, 1)) + |> Pleroma.Web.MediaProxy.Invalidation.purge() + + {:ok, :success} end - def perform(%{"op" => "cleanup_attachments", "object" => _object}, _job), do: :ok + def perform(%{"op" => "cleanup_attachments", "object" => _object}, _job), do: {:ok, :skip} 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/lib/pleroma/workers/scheduled_activity_worker.ex b/lib/pleroma/workers/scheduled_activity_worker.ex index 8905f4ad0..97d1efbfb 100644 --- a/lib/pleroma/workers/scheduled_activity_worker.ex +++ b/lib/pleroma/workers/scheduled_activity_worker.ex @@ -30,6 +30,8 @@ def perform(%{"activity_id" => activity_id}, _job) do end defp post_activity(%ScheduledActivity{user_id: user_id, params: params} = scheduled_activity) do + params = Map.new(params, fn {key, value} -> {String.to_existing_atom(key), value} end) + with {:delete, {:ok, _}} <- {:delete, ScheduledActivity.delete(scheduled_activity)}, {:user, %User{} = user} <- {:user, User.get_cached_by_id(user_id)}, {:post, {:ok, _}} <- {:post, CommonAPI.post(user, params)} do diff --git a/mix.exs b/mix.exs index beb05aab9..03b060bc0 100644 --- a/mix.exs +++ b/mix.exs @@ -36,7 +36,7 @@ def project do releases: [ pleroma: [ include_executables_for: [:unix], - applications: [ex_syslogger: :load, syslog: :load], + applications: [ex_syslogger: :load, syslog: :load, eldap: :transient], steps: [:assemble, &put_otp_version/1, ©_files/1, ©_nginx_config/1] ] ] @@ -72,7 +72,14 @@ def copy_nginx_config(%{path: target_path} = release) do def application do [ mod: {Pleroma.Application, []}, - extra_applications: [:logger, :runtime_tools, :comeonin, :quack, :fast_sanitize, :ssl], + extra_applications: [ + :logger, + :runtime_tools, + :comeonin, + :quack, + :fast_sanitize, + :ssl + ], included_applications: [:ex_syslogger] ] end @@ -119,8 +126,8 @@ defp deps do {:postgrex, ">= 0.13.5"}, {:oban, "~> 1.2"}, {:gettext, "~> 0.15"}, - {:comeonin, "~> 4.1.1"}, - {:pbkdf2_elixir, "~> 0.12.3"}, + {:pbkdf2_elixir, "~> 1.0"}, + {:bcrypt_elixir, "~> 2.0"}, {:trailing_format_plug, "~> 0.0.7"}, {:fast_sanitize, "~> 0.1"}, {:html_entities, "~> 0.5", override: true}, @@ -148,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"}, @@ -176,6 +183,7 @@ defp deps do {:quack, "~> 0.1.1"}, {:joken, "~> 2.0"}, {:benchee, "~> 1.0"}, + {:pot, "~> 0.10.2"}, {:esshd, "~> 0.1.0", runtime: Application.get_env(:esshd, :enabled, false)}, {:ex_const, "~> 0.2"}, {:plug_static_index_html, "~> 1.0.0"}, @@ -191,7 +199,7 @@ defp deps do {:restarter, path: "./restarter"}, {:open_api_spex, git: "https://git.pleroma.social/pleroma/elixir-libraries/open_api_spex.git", - ref: "b862ebd78de0df95875cf46feb6e9607130dc2a8"} + ref: "f296ac0924ba3cf79c7a588c4c252889df4c2edd"} ] ++ oauth_deps() end diff --git a/mix.lock b/mix.lock index ee9d93bfb..5383c2c6e 100644 --- a/mix.lock +++ b/mix.lock @@ -5,30 +5,32 @@ "base64url": {:hex, :base64url, "0.0.1", "36a90125f5948e3afd7be97662a1504b934dd5dac78451ca6e9abf85a10286be", [:rebar], [], "hexpm"}, "bbcode": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/bbcode.git", "f2d267675e9a7e1ad1ea9beb4cc23382762b66c2", [ref: "v0.2.0"]}, "bbcode_pleroma": {:hex, :bbcode_pleroma, "0.2.0", "d36f5bca6e2f62261c45be30fa9b92725c0655ad45c99025cb1c3e28e25803ef", [:mix], [{:nimble_parsec, "~> 0.5", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "19851074419a5fedb4ef49e1f01b30df504bb5dbb6d6adfc135238063bebd1c3"}, + "bcrypt_elixir": {:hex, :bcrypt_elixir, "2.2.0", "3df902b81ce7fa8867a2ae30d20a1da6877a2c056bfb116fd0bc8a5f0190cea4", [:make, :mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "762be3fcb779f08207531bc6612cca480a338e4b4357abb49f5ce00240a77d1e"}, "benchee": {:hex, :benchee, "1.0.1", "66b211f9bfd84bd97e6d1beaddf8fc2312aaabe192f776e8931cb0c16f53a521", [:mix], [{:deep_merge, "~> 1.0", [hex: :deep_merge, repo: "hexpm", optional: false]}], "hexpm", "3ad58ae787e9c7c94dd7ceda3b587ec2c64604563e049b2a0e8baafae832addb"}, "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm", "7af5c7e09fe1d40f76c8e4f9dd2be7cebd83909f31fee7cd0e9eadc567da8353"}, "cachex": {:hex, :cachex, "3.2.0", "a596476c781b0646e6cb5cd9751af2e2974c3e0d5498a8cab71807618b74fe2f", [:mix], [{:eternal, "~> 1.2", [hex: :eternal, repo: "hexpm", optional: false]}, {:jumper, "~> 1.0", [hex: :jumper, repo: "hexpm", optional: false]}, {:sleeplocks, "~> 1.1", [hex: :sleeplocks, repo: "hexpm", optional: false]}, {:unsafe, "~> 1.0", [hex: :unsafe, repo: "hexpm", optional: false]}], "hexpm", "aef93694067a43697ae0531727e097754a9e992a1e7946296f5969d6dd9ac986"}, "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, "4.1.2", "3eb5620fd8e35508991664b4c2b04dd41e52f1620b36957be837c1d7784b7592", [:mix], [{:argon2_elixir, "~> 1.2", [hex: :argon2_elixir, repo: "hexpm", optional: true]}, {:bcrypt_elixir, "~> 0.12.1 or ~> 1.0", [hex: :bcrypt_elixir, repo: "hexpm", optional: true]}, {:pbkdf2_elixir, "~> 0.12", [hex: :pbkdf2_elixir, repo: "hexpm", optional: true]}], "hexpm", "d8700a0ca4dbb616c22c9b3f6dd539d88deaafec3efe66869d6370c9a559b3e9"}, + "comeonin": {:hex, :comeonin, "5.3.1", "7fe612b739c78c9c1a75186ef2d322ce4d25032d119823269d0aa1e2f1e20025", [:mix], [], "hexpm", "d6222483060c17f0977fad1b7401ef0c5863c985a64352755f366aee3799c245"}, "connection": {:hex, :connection, "1.0.4", "a1cae72211f0eef17705aaededacac3eb30e6625b04a6117c1b2db6ace7d5976", [:mix], [], "hexpm", "4a0850c9be22a43af9920a71ab17c051f5f7d45c209e40269a1938832510e4d9"}, "cors_plug": {:hex, :cors_plug, "1.5.2", "72df63c87e4f94112f458ce9d25800900cc88608c1078f0e4faddf20933eda6e", [:mix], [{:plug, "~> 1.3 or ~> 1.4 or ~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "9af027d20dc12dd0c4345a6b87247e0c62965871feea0bfecf9764648b02cc69"}, "cowboy": {:hex, :cowboy, "2.7.0", "91ed100138a764355f43316b1d23d7ff6bdb0de4ea618cb5d8677c93a7a2f115", [:rebar3], [{:cowlib, "~> 2.8.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "~> 1.7.1", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "04fd8c6a39edc6aaa9c26123009200fc61f92a3a94f3178c527b70b767c6e605"}, "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"}, "esshd": {:hex, :esshd, "0.1.1", "d4dd4c46698093a40a56afecce8a46e246eb35463c457c246dacba2e056f31b5", [:mix], [], "hexpm", "d73e341e3009d390aa36387dc8862860bf9f874c94d9fd92ade2926376f49981"}, "eternal": {:hex, :eternal, "1.2.1", "d5b6b2499ba876c57be2581b5b999ee9bdf861c647401066d3eeed111d096bc4", [:mix], [], "hexpm", "b14f1dc204321429479c569cfbe8fb287541184ed040956c8862cb7a677b8406"}, "ex2ms": {:hex, :ex2ms, "1.5.0", "19e27f9212be9a96093fed8cdfbef0a2b56c21237196d26760f11dfcfae58e97", [:mix], [], "hexpm"}, @@ -37,7 +39,7 @@ "ex_const": {:hex, :ex_const, "0.2.4", "d06e540c9d834865b012a17407761455efa71d0ce91e5831e86881b9c9d82448", [:mix], [], "hexpm", "96fd346610cc992b8f896ed26a98be82ac4efb065a0578f334a32d60a3ba9767"}, "ex_doc": {:hex, :ex_doc, "0.21.3", "857ec876b35a587c5d9148a2512e952e24c24345552259464b98bfbb883c7b42", [:mix], [{:earmark, "~> 1.4", [hex: :earmark, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}], "hexpm", "0db1ee8d1547ab4877c5b5dffc6604ef9454e189928d5ba8967d4a58a801f161"}, "ex_machina": {:hex, :ex_machina, "2.3.0", "92a5ad0a8b10ea6314b876a99c8c9e3f25f4dde71a2a835845b136b9adaf199a", [:mix], [{:ecto, "~> 2.2 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_sql, "~> 3.0", [hex: :ecto_sql, repo: "hexpm", optional: true]}], "hexpm", "b84f6af156264530b312a8ab98ac6088f6b77ae5fe2058305c81434aa01fbaf9"}, - "ex_syslogger": {:hex, :ex_syslogger, "1.5.0", "bc936ee3fd13d9e592cb4c3a1e8a55fccd33b05e3aa7b185f211f3ed263ff8f0", [:mix], [{:poison, ">= 1.5.0", [hex: :poison, repo: "hexpm", optional: true]}, {:syslog, "~> 1.0.5", [hex: :syslog, repo: "hexpm", optional: false]}], "hexpm", "f3b4b184dcdd5f356b7c26c6cd72ab0918ba9dfb4061ccfaf519e562942af87b"}, + "ex_syslogger": {:hex, :ex_syslogger, "1.5.2", "72b6aa2d47a236e999171f2e1ec18698740f40af0bd02c8c650bf5f1fd1bac79", [:mix], [{:poison, ">= 1.5.0", [hex: :poison, repo: "hexpm", optional: true]}, {:syslog, "~> 1.1.0", [hex: :syslog, repo: "hexpm", optional: false]}], "hexpm", "ab9fab4136dbc62651ec6f16fa4842f10cf02ab4433fa3d0976c01be99398399"}, "excoveralls": {:hex, :excoveralls, "0.12.2", "a513defac45c59e310ac42fcf2b8ae96f1f85746410f30b1ff2b710a4b6cd44b", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "151c476331d49b45601ffc45f43cb3a8beb396b02a34e3777fea0ad34ae57d89"}, "fast_html": {:hex, :fast_html, "1.0.3", "2cc0d4b68496266a1530e0c852cafeaede0bd10cfdee26fda50dc696c203162f", [:make, :mix], [], "hexpm", "ab3d782b639d3c4655fbaec0f9d032c91f8cab8dd791ac7469c2381bc7c32f85"}, "fast_sanitize": {:hex, :fast_sanitize, "0.1.7", "2a7cd8734c88a2de6de55022104f8a3b87f1fdbe8bbf131d9049764b53d50d0d", [:mix], [{:fast_html, "~> 1.0", [hex: :fast_html, repo: "hexpm", optional: false]}, {:plug, "~> 1.8", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "f39fe8ea08fbac17487c30bf09b7d9f3e12472e51fb07a88ffeb8fd17da8ab67"}, @@ -48,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"}, @@ -74,9 +76,9 @@ "nimble_parsec": {:hex, :nimble_parsec, "0.5.3", "def21c10a9ed70ce22754fdeea0810dafd53c2db3219a0cd54cf5526377af1c6", [:mix], [], "hexpm", "589b5af56f4afca65217a1f3eb3fee7e79b09c40c742fddc1c312b3ac0b3399f"}, "nodex": {:git, "https://git.pleroma.social/pleroma/nodex", "cb6730f943cfc6aad674c92161be23a8411f15d1", [ref: "cb6730f943cfc6aad674c92161be23a8411f15d1"]}, "oban": {:hex, :oban, "1.2.0", "7cca94d341be43d220571e28f69131c4afc21095b25257397f50973d3fc59b07", [:mix], [{:ecto_sql, "~> 3.1", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.14", [hex: :postgrex, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ba5f8b3f7d76967b3e23cf8014f6a13e4ccb33431e4808f036709a7f822362ee"}, - "open_api_spex": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/open_api_spex.git", "b862ebd78de0df95875cf46feb6e9607130dc2a8", [ref: "b862ebd78de0df95875cf46feb6e9607130dc2a8"]}, + "open_api_spex": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/open_api_spex.git", "f296ac0924ba3cf79c7a588c4c252889df4c2edd", [ref: "f296ac0924ba3cf79c7a588c4c252889df4c2edd"]}, "parse_trans": {:hex, :parse_trans, "3.3.0", "09765507a3c7590a784615cfd421d101aec25098d50b89d7aa1d66646bc571c1", [:rebar3], [], "hexpm", "17ef63abde837ad30680ea7f857dd9e7ced9476cdd7b0394432af4bfc241b960"}, - "pbkdf2_elixir": {:hex, :pbkdf2_elixir, "0.12.4", "8dd29ed783f2e12195d7e0a4640effc0a7c37e6537da491f1db01839eee6d053", [:mix], [], "hexpm", "595d09db74cb093b1903381c9de423276a931a2480a46a1a5dc7f932a2a6375b"}, + "pbkdf2_elixir": {:hex, :pbkdf2_elixir, "1.2.1", "9cbe354b58121075bd20eb83076900a3832324b7dd171a6895fab57b6bb2752c", [:mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}], "hexpm", "d3b40a4a4630f0b442f19eca891fcfeeee4c40871936fed2f68e1c4faa30481f"}, "phoenix": {:hex, :phoenix, "1.4.13", "67271ad69b51f3719354604f4a3f968f83aa61c19199343656c9caee057ff3b8", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 1.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:plug, "~> 1.8.1 or ~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 1.0 or ~> 2.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ab765a0feddb81fc62e2116c827b5f068df85159c162bee760745276ad7ddc1b"}, "phoenix_ecto": {:hex, :phoenix_ecto, "4.1.0", "a044d0756d0464c5a541b4a0bf4bcaf89bffcaf92468862408290682c73ae50d", [:mix], [{:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.9", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "c5e666a341ff104d0399d8f0e4ff094559b2fde13a5985d4cb5023b2c2ac558b"}, "phoenix_html": {:hex, :phoenix_html, "2.14.0", "d8c6bc28acc8e65f8ea0080ee05aa13d912c8758699283b8d3427b655aabe284", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "b0bb30eda478a06dbfbe96728061a93833db3861a49ccb516f839ecb08493fbb"}, @@ -89,6 +91,7 @@ "poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], [], "hexpm", "fec8660eb7733ee4117b85f55799fd3833eb769a6df71ccf8903e8dc5447cfce"}, "poolboy": {:hex, :poolboy, "1.5.2", "392b007a1693a64540cead79830443abf5762f5d30cf50bc95cb2c1aaafa006b", [:rebar3], [], "hexpm", "dad79704ce5440f3d5a3681c8590b9dc25d1a561e8f5a9c995281012860901e3"}, "postgrex": {:hex, :postgrex, "0.15.3", "5806baa8a19a68c4d07c7a624ccdb9b57e89cbc573f1b98099e3741214746ae4", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "4737ce62a31747b4c63c12b20c62307e51bb4fcd730ca0c32c280991e0606c90"}, + "pot": {:hex, :pot, "0.10.2", "9895c83bcff8cd22d9f5bc79dfc88a188176b261b618ad70d93faf5c5ca36e67", [:rebar3], [], "hexpm", "ac589a8e296b7802681e93cd0a436faec117ea63e9916709c628df31e17e91e2"}, "prometheus": {:hex, :prometheus, "4.5.0", "8f4a2246fe0beb50af0f77c5e0a5bb78fe575c34a9655d7f8bc743aad1c6bf76", [:mix, :rebar3], [], "hexpm", "679b5215480fff612b8351f45c839d995a07ce403e42ff02f1c6b20960d41a4e"}, "prometheus_ecto": {:hex, :prometheus_ecto, "1.4.3", "3dd4da1812b8e0dbee81ea58bb3b62ed7588f2eae0c9e97e434c46807ff82311", [:mix], [{:ecto, "~> 2.0 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:prometheus_ex, "~> 1.1 or ~> 2.0 or ~> 3.0", [hex: :prometheus_ex, repo: "hexpm", optional: false]}], "hexpm", "8d66289f77f913b37eda81fd287340c17e61a447549deb28efc254532b2bed82"}, "prometheus_ex": {:hex, :prometheus_ex, "3.0.5", "fa58cfd983487fc5ead331e9a3e0aa622c67232b3ec71710ced122c4c453a02f", [:mix], [{:prometheus, "~> 4.0", [hex: :prometheus, repo: "hexpm", optional: false]}], "hexpm", "9fd13404a48437e044b288b41f76e64acd9735fb8b0e3809f494811dfa66d0fb"}, @@ -99,17 +102,17 @@ "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.0.6", "995970c9aa7feb380ac493302138e308d6e04fd57da95b439a6df5bb3bf75076", [:rebar3], [], "hexpm", "769ddfabd0d2a16f3f9c17eb7509951e0ca4f68363fb26f2ee51a8ec4a49881a"}, + "syslog": {:hex, :syslog, "1.1.0", "6419a232bea84f07b56dc575225007ffe34d9fdc91abe6f1b2f254fd71d8efc2", [:rebar3], [], "hexpm", "4c6a41373c7e20587be33ef841d3de6f3beba08519809329ecc4d27b15b659e1"}, "telemetry": {:hex, :telemetry, "0.4.1", "ae2718484892448a24470e6aa341bc847c3277bfb8d4e9289f7474d752c09c7f", [:rebar3], [], "hexpm", "4738382e36a0a9a2b6e25d67c960e40e1a2c95560b9f936d8e29de8cd858480f"}, "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"}, "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/en/LC_MESSAGES/errors.po b/priv/gettext/en/LC_MESSAGES/errors.po deleted file mode 100644 index 25a2f73e4..000000000 --- a/priv/gettext/en/LC_MESSAGES/errors.po +++ /dev/null @@ -1,465 +0,0 @@ -## `msgid`s in this file come from POT (.pot) files. -## -## Do not add, change, or remove `msgid`s manually here as -## they're tied to the ones in the corresponding POT file -## (with the same domain). -## -## Use `mix gettext.extract --merge` or `mix gettext.merge` -## to merge POT files into PO files. -msgid "" -msgstr "" -"Language: en\n" - -## From Ecto.Changeset.cast/4 -msgid "can't be blank" -msgstr "" - -## 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 "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:381 -msgid "Account not found" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:153 -msgid "Already voted" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:263 -msgid "Bad request" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:254 -msgid "Can't delete object" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:569 -msgid "Can't delete this post" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1731 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1737 -msgid "Can't display this activity" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:195 -msgid "Can't find user" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1148 -msgid "Can't get favorites" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:263 -msgid "Can't like object" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/utils.ex:518 -msgid "Cannot post an empty status without attachments" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/utils.ex:461 -msgid "Comment must be up to %{max_size} characters" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/admin_api/config.ex:63 -msgid "Config with params %{params} not found" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:78 -msgid "Could not delete" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:110 -msgid "Could not favorite" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:310 -msgid "Could not pin" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:89 -msgid "Could not repeat" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:120 -msgid "Could not unfavorite" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:327 -msgid "Could not unpin" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:99 -msgid "Could not unrepeat" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:392 -msgid "Could not update state" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1271 -msgid "Error." -msgstr "" - -#, elixir-format -#: lib/pleroma/captcha/kocaptcha.ex:36 -msgid "Invalid CAPTCHA" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1700 -#: lib/pleroma/web/oauth/oauth_controller.ex:465 -msgid "Invalid credentials" -msgstr "" - -#, elixir-format -#: lib/pleroma/plugs/ensure_authenticated_plug.ex:20 -msgid "Invalid credentials." -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:154 -msgid "Invalid indices" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/admin_api/admin_api_controller.ex:411 -msgid "Invalid parameters" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/utils.ex:377 -msgid "Invalid password." -msgstr "" - -#, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:163 -msgid "Invalid request" -msgstr "" - -#, elixir-format -#: lib/pleroma/captcha/kocaptcha.ex:16 -msgid "Kocaptcha service unavailable" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1696 -msgid "Missing parameters" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/utils.ex:496 -msgid "No such conversation" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/admin_api/admin_api_controller.ex:163 -#: lib/pleroma/web/admin_api/admin_api_controller.ex:206 -msgid "No such permission_group" -msgstr "" - -#, elixir-format -#: lib/pleroma/plugs/uploaded_media.ex:69 -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:311 -#: lib/pleroma/web/admin_api/admin_api_controller.ex:399 -#: lib/pleroma/web/mastodon_api/subscription_controller.ex:63 -#: lib/pleroma/web/ostatus/ostatus_controller.ex:248 -msgid "Not found" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:152 -msgid "Poll's author can't vote" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:443 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:444 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:473 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:476 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1180 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1564 -msgid "Record not found" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/admin_api/admin_api_controller.ex:417 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1570 -#: lib/pleroma/web/mastodon_api/subscription_controller.ex:69 -#: lib/pleroma/web/ostatus/ostatus_controller.ex:252 -msgid "Something went wrong" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:253 -msgid "The message visibility must be direct" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/utils.ex:521 -msgid "The status is over the character limit" -msgstr "" - -#, elixir-format -#: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:27 -msgid "This resource requires authentication." -msgstr "" - -#, elixir-format -#: lib/pleroma/plugs/rate_limiter.ex:89 -msgid "Throttled" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:155 -msgid "Too many choices" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:268 -msgid "Unhandled activity type" -msgstr "" - -#, elixir-format -#: lib/pleroma/plugs/user_is_admin_plug.ex:20 -msgid "User is not admin." -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:380 -msgid "Valid `account_id` required" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/admin_api/admin_api_controller.ex:185 -msgid "You can't revoke your own admin status." -msgstr "" - -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:216 -msgid "Your account is currently disabled" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:158 -#: lib/pleroma/web/oauth/oauth_controller.ex:213 -msgid "Your login is missing a confirmed e-mail address" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:221 -msgid "can't read inbox of %{nickname} as %{as_nickname}" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:297 -msgid "can't update outbox of %{nickname} as %{as_nickname}" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:335 -msgid "conversation is already muted" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:192 -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:317 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1196 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1247 -msgid "error" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:789 -msgid "mascots can only be images" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:34 -msgid "not found" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:298 -msgid "Bad OAuth request." -msgstr "" - -#, elixir-format -#: lib/pleroma/captcha/captcha.ex:92 -msgid "CAPTCHA already used" -msgstr "" - -#, elixir-format -#: lib/pleroma/captcha/captcha.ex:89 -msgid "CAPTCHA expired" -msgstr "" - -#, elixir-format -#: lib/pleroma/plugs/uploaded_media.ex:50 -msgid "Failed" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:314 -msgid "Failed to authenticate: %{message}." -msgstr "" - -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:345 -msgid "Failed to set up user account." -msgstr "" - -#, elixir-format -#: lib/pleroma/plugs/oauth_scopes_plug.ex:37 -msgid "Insufficient permissions: %{permissions}." -msgstr "" - -#, elixir-format -#: lib/pleroma/plugs/uploaded_media.ex:89 -msgid "Internal Error" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/oauth/fallback_controller.ex:22 -#: lib/pleroma/web/oauth/fallback_controller.ex:29 -msgid "Invalid Username/Password" -msgstr "" - -#, elixir-format -#: lib/pleroma/captcha/captcha.ex:107 -msgid "Invalid answer data" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:204 -msgid "Nodeinfo schema version not handled" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:145 -msgid "This action is outside the authorized scopes" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/oauth/fallback_controller.ex:14 -msgid "Unknown error, please check the details and try again." -msgstr "" - -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:93 -#: lib/pleroma/web/oauth/oauth_controller.ex:131 -msgid "Unlisted redirect_uri." -msgstr "" - -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:294 -msgid "Unsupported OAuth provider: %{provider}." -msgstr "" - -#, elixir-format -#: lib/pleroma/uploaders/uploader.ex:71 -msgid "Uploader callback timeout" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/uploader_controller.ex:11 -#: lib/pleroma/web/uploader_controller.ex:23 -msgid "bad request" -msgstr "" diff --git a/priv/gettext/errors.pot b/priv/gettext/errors.pot index 2fd9c42e3..0e1cf37eb 100644 --- a/priv/gettext/errors.pot +++ b/priv/gettext/errors.pot @@ -90,326 +90,312 @@ msgid "must be equal to %{number}" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:381 +#: lib/pleroma/web/common_api/common_api.ex:421 msgid "Account not found" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:153 +#: lib/pleroma/web/common_api/common_api.ex:249 msgid "Already voted" msgstr "" #, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:263 +#: lib/pleroma/web/oauth/oauth_controller.ex:360 msgid "Bad request" msgstr "" #, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:254 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:425 msgid "Can't delete object" msgstr "" #, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:569 +#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:196 msgid "Can't delete this post" msgstr "" #, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1731 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1737 +#: lib/pleroma/web/controller_helper.ex:95 +#: lib/pleroma/web/controller_helper.ex:101 msgid "Can't display this activity" msgstr "" #, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:195 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:227 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:254 msgid "Can't find user" msgstr "" #, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1148 +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:114 msgid "Can't get favorites" msgstr "" #, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:263 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:437 msgid "Can't like object" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/utils.ex:518 +#: lib/pleroma/web/common_api/utils.ex:556 msgid "Cannot post an empty status without attachments" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/utils.ex:461 +#: lib/pleroma/web/common_api/utils.ex:504 msgid "Comment must be up to %{max_size} characters" msgstr "" #, elixir-format -#: lib/pleroma/web/admin_api/config.ex:63 +#: lib/pleroma/config/config_db.ex:222 msgid "Config with params %{params} not found" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:78 +#: lib/pleroma/web/common_api/common_api.ex:95 msgid "Could not delete" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:110 +#: lib/pleroma/web/common_api/common_api.ex:141 msgid "Could not favorite" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:310 +#: lib/pleroma/web/common_api/common_api.ex:370 msgid "Could not pin" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:89 +#: lib/pleroma/web/common_api/common_api.ex:112 msgid "Could not repeat" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:120 +#: lib/pleroma/web/common_api/common_api.ex:188 msgid "Could not unfavorite" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:327 +#: lib/pleroma/web/common_api/common_api.ex:380 msgid "Could not unpin" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:99 +#: lib/pleroma/web/common_api/common_api.ex:126 msgid "Could not unrepeat" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:392 +#: lib/pleroma/web/common_api/common_api.ex:428 +#: lib/pleroma/web/common_api/common_api.ex:437 msgid "Could not update state" msgstr "" #, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1271 +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:202 msgid "Error." msgstr "" #, elixir-format -#: lib/pleroma/captcha/kocaptcha.ex:36 +#: lib/pleroma/web/twitter_api/twitter_api.ex:106 msgid "Invalid CAPTCHA" msgstr "" #, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1700 -#: lib/pleroma/web/oauth/oauth_controller.ex:465 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:117 +#: lib/pleroma/web/oauth/oauth_controller.ex:569 msgid "Invalid credentials" msgstr "" #, elixir-format -#: lib/pleroma/plugs/ensure_authenticated_plug.ex:20 +#: lib/pleroma/plugs/ensure_authenticated_plug.ex:38 msgid "Invalid credentials." msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:154 +#: lib/pleroma/web/common_api/common_api.ex:265 msgid "Invalid indices" msgstr "" #, elixir-format -#: lib/pleroma/web/admin_api/admin_api_controller.ex:411 +#: lib/pleroma/web/admin_api/admin_api_controller.ex:1147 msgid "Invalid parameters" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/utils.ex:377 +#: lib/pleroma/web/common_api/utils.ex:411 msgid "Invalid password." msgstr "" #, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:163 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:187 msgid "Invalid request" msgstr "" #, elixir-format -#: lib/pleroma/captcha/kocaptcha.ex:16 +#: lib/pleroma/web/twitter_api/twitter_api.ex:109 msgid "Kocaptcha service unavailable" msgstr "" #, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1696 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:113 msgid "Missing parameters" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/utils.ex:496 +#: lib/pleroma/web/common_api/utils.ex:540 msgid "No such conversation" msgstr "" #, elixir-format -#: lib/pleroma/web/admin_api/admin_api_controller.ex:163 -#: lib/pleroma/web/admin_api/admin_api_controller.ex:206 +#: 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 msgid "No such permission_group" msgstr "" #, elixir-format -#: lib/pleroma/plugs/uploaded_media.ex:69 -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:311 -#: lib/pleroma/web/admin_api/admin_api_controller.ex:399 -#: lib/pleroma/web/mastodon_api/subscription_controller.ex:63 -#: lib/pleroma/web/ostatus/ostatus_controller.ex:248 +#: 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 msgid "Not found" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:152 +#: lib/pleroma/web/common_api/common_api.ex:241 msgid "Poll's author can't vote" msgstr "" #, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:443 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:444 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:473 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:476 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1180 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1564 +#: 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 msgid "Record not found" msgstr "" #, elixir-format -#: lib/pleroma/web/admin_api/admin_api_controller.ex:417 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1570 -#: lib/pleroma/web/mastodon_api/subscription_controller.ex:69 -#: lib/pleroma/web/ostatus/ostatus_controller.ex:252 +#: 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 msgid "Something went wrong" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:253 +#: lib/pleroma/web/common_api/activity_draft.ex:107 msgid "The message visibility must be direct" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/utils.ex:521 +#: lib/pleroma/web/common_api/utils.ex:566 msgid "The status is over the character limit" msgstr "" #, elixir-format -#: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:27 +#: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:31 msgid "This resource requires authentication." msgstr "" #, elixir-format -#: lib/pleroma/plugs/rate_limiter.ex:89 +#: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206 msgid "Throttled" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:155 +#: lib/pleroma/web/common_api/common_api.ex:266 msgid "Too many choices" msgstr "" #, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:268 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:442 msgid "Unhandled activity type" msgstr "" #, elixir-format -#: lib/pleroma/plugs/user_is_admin_plug.ex:20 -msgid "User is not admin." -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:380 -msgid "Valid `account_id` required" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/admin_api/admin_api_controller.ex:185 +#: lib/pleroma/web/admin_api/admin_api_controller.ex:536 msgid "You can't revoke your own admin status." msgstr "" #, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:216 +#: lib/pleroma/web/oauth/oauth_controller.ex:218 +#: lib/pleroma/web/oauth/oauth_controller.ex:309 msgid "Your account is currently disabled" msgstr "" #, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:158 -#: lib/pleroma/web/oauth/oauth_controller.ex:213 +#: lib/pleroma/web/oauth/oauth_controller.ex:180 +#: lib/pleroma/web/oauth/oauth_controller.ex:332 msgid "Your login is missing a confirmed e-mail address" msgstr "" #, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:221 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:389 msgid "can't read inbox of %{nickname} as %{as_nickname}" msgstr "" #, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:297 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:472 msgid "can't update outbox of %{nickname} as %{as_nickname}" msgstr "" #, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:335 +#: lib/pleroma/web/common_api/common_api.ex:388 msgid "conversation is already muted" msgstr "" #, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:192 -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:317 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1196 -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1247 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:316 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:491 msgid "error" msgstr "" #, elixir-format -#: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:789 +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:29 msgid "mascots can only be images" msgstr "" #, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:34 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:60 msgid "not found" msgstr "" #, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:298 +#: lib/pleroma/web/oauth/oauth_controller.ex:395 msgid "Bad OAuth request." msgstr "" #, elixir-format -#: lib/pleroma/captcha/captcha.ex:92 +#: lib/pleroma/web/twitter_api/twitter_api.ex:115 msgid "CAPTCHA already used" msgstr "" #, elixir-format -#: lib/pleroma/captcha/captcha.ex:89 +#: lib/pleroma/web/twitter_api/twitter_api.ex:112 msgid "CAPTCHA expired" msgstr "" #, elixir-format -#: lib/pleroma/plugs/uploaded_media.ex:50 +#: lib/pleroma/plugs/uploaded_media.ex:55 msgid "Failed" msgstr "" #, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:314 +#: lib/pleroma/web/oauth/oauth_controller.ex:411 msgid "Failed to authenticate: %{message}." msgstr "" #, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:345 +#: lib/pleroma/web/oauth/oauth_controller.ex:442 msgid "Failed to set up user account." msgstr "" #, elixir-format -#: lib/pleroma/plugs/oauth_scopes_plug.ex:37 +#: lib/pleroma/plugs/oauth_scopes_plug.ex:38 msgid "Insufficient permissions: %{permissions}." msgstr "" #, elixir-format -#: lib/pleroma/plugs/uploaded_media.ex:89 +#: lib/pleroma/plugs/uploaded_media.ex:94 msgid "Internal Error" msgstr "" @@ -420,17 +406,17 @@ msgid "Invalid Username/Password" msgstr "" #, elixir-format -#: lib/pleroma/captcha/captcha.ex:107 +#: lib/pleroma/web/twitter_api/twitter_api.ex:118 msgid "Invalid answer data" msgstr "" #, elixir-format -#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:204 +#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:128 msgid "Nodeinfo schema version not handled" msgstr "" #, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:145 +#: lib/pleroma/web/oauth/oauth_controller.ex:169 msgid "This action is outside the authorized scopes" msgstr "" @@ -440,23 +426,139 @@ msgid "Unknown error, please check the details and try again." msgstr "" #, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:93 -#: lib/pleroma/web/oauth/oauth_controller.ex:131 +#: lib/pleroma/web/oauth/oauth_controller.ex:116 +#: lib/pleroma/web/oauth/oauth_controller.ex:155 msgid "Unlisted redirect_uri." msgstr "" #, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:294 +#: lib/pleroma/web/oauth/oauth_controller.ex:391 msgid "Unsupported OAuth provider: %{provider}." msgstr "" #, elixir-format -#: lib/pleroma/uploaders/uploader.ex:71 +#: lib/pleroma/uploaders/uploader.ex:72 msgid "Uploader callback timeout" msgstr "" #, elixir-format -#: lib/pleroma/web/uploader_controller.ex:11 #: lib/pleroma/web/uploader_controller.ex:23 msgid "bad request" msgstr "" + +#, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:103 +msgid "CAPTCHA Error" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api/common_api.ex:200 +msgid "Could not add reaction emoji" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api/common_api.ex:211 +msgid "Could not remove reaction emoji" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:129 +msgid "Invalid CAPTCHA (Missing parameter: %{name})" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:92 +msgid "List not found" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:124 +msgid "Missing parameter: %{name}" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/oauth/oauth_controller.ex:207 +#: lib/pleroma/web/oauth/oauth_controller.ex:322 +msgid "Password reset is required" +msgstr "" + +#, elixir-format +#: 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 +msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." +msgstr "" + +#, elixir-format +#: lib/pleroma/plugs/ensure_authenticated_plug.ex:28 +msgid "Two-factor authentication enabled, you must use a access token." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:210 +msgid "Unexpected error occurred while adding file to pack." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:138 +msgid "Unexpected error occurred while creating pack." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:278 +msgid "Unexpected error occurred while removing file from pack." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:250 +msgid "Unexpected error occurred while updating file in pack." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:179 +msgid "Unexpected error occurred while updating pack metadata." +msgstr "" + +#, elixir-format +#: lib/pleroma/plugs/user_is_admin_plug.ex:40 +msgid "User is not an admin or OAuth admin scope is not granted." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 +msgid "Web push subscription is disabled on this Pleroma instance" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/admin_api/admin_api_controller.ex:502 +msgid "You can't revoke your own admin/moderator status." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:105 +msgid "authorization required for timeline view" +msgstr "" diff --git a/priv/gettext/fr/LC_MESSAGES/errors.po b/priv/gettext/fr/LC_MESSAGES/errors.po index 678b32289..406f98de9 100644 --- a/priv/gettext/fr/LC_MESSAGES/errors.po +++ b/priv/gettext/fr/LC_MESSAGES/errors.po @@ -8,8 +8,16 @@ ## to merge POT files into PO files. msgid "" msgstr "" +"PO-Revision-Date: 2020-05-12 15:52+0000\n" +"Last-Translator: Haelwenn (lanodan) Monnier " +"\n" +"Language-Team: French \n" "Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.0.4\n" +"Content-Transfer-Encoding: 8bit\n" msgid "can't be blank" msgstr "ne peut être vide" @@ -35,10 +43,10 @@ msgid "does not match confirmation" msgstr "ne correspondent pas" msgid "is still associated with this entry" -msgstr "" +msgstr "est toujours associé à cette entrée" msgid "are still associated with this entry" -msgstr "" +msgstr "sont toujours associés à cette entrée" msgid "should be %{count} character(s)" msgid_plural "should be %{count} character(s)" @@ -85,375 +93,375 @@ msgstr "doit être supérieur ou égal à %{number}" msgid "must be equal to %{number}" msgstr "doit égal à %{number}" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:381 +#, elixir-format msgid "Account not found" msgstr "Compte non trouvé" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:153 +#, elixir-format msgid "Already voted" msgstr "A déjà voté" -#, elixir-format #: lib/pleroma/web/oauth/oauth_controller.ex:263 +#, elixir-format msgid "Bad request" msgstr "Requête Invalide" -#, elixir-format #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:254 +#, elixir-format msgid "Can't delete object" msgstr "Ne peut supprimer cet objet" -#, elixir-format #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:569 +#, elixir-format msgid "Can't delete this post" msgstr "Ne peut supprimer ce message" -#, elixir-format #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1731 #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1737 +#, elixir-format msgid "Can't display this activity" msgstr "Ne peut afficher cette activitée" -#, elixir-format #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:195 +#, elixir-format msgid "Can't find user" msgstr "Compte non trouvé" -#, elixir-format #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1148 +#, elixir-format msgid "Can't get favorites" msgstr "Favoris non trouvables" -#, elixir-format #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:263 +#, elixir-format msgid "Can't like object" msgstr "Ne peut aimer cet objet" -#, elixir-format #: lib/pleroma/web/common_api/utils.ex:518 +#, elixir-format msgid "Cannot post an empty status without attachments" msgstr "Ne peut envoyer un status vide sans attachements" -#, elixir-format #: lib/pleroma/web/common_api/utils.ex:461 +#, elixir-format msgid "Comment must be up to %{max_size} characters" msgstr "Le commentaire ne doit faire plus de %{max_size} charactères" -#, elixir-format #: lib/pleroma/web/admin_api/config.ex:63 +#, elixir-format msgid "Config with params %{params} not found" msgstr "Configuration avec les paramètres %{params} non trouvée" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:78 +#, elixir-format msgid "Could not delete" msgstr "Échec de la suppression" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:110 +#, elixir-format msgid "Could not favorite" msgstr "Échec de mise en favoris" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:310 +#, elixir-format msgid "Could not pin" msgstr "Échec de l'épinglage" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:89 +#, elixir-format msgid "Could not repeat" msgstr "Échec de création la répétition" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:120 +#, elixir-format msgid "Could not unfavorite" msgstr "Échec de suppression des favoris" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:327 +#, elixir-format msgid "Could not unpin" msgstr "Échec du dépinglage" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:99 +#, elixir-format msgid "Could not unrepeat" msgstr "Échec de suppression de la répétition" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:392 +#, elixir-format msgid "Could not update state" msgstr "Échec de la mise à jour du status" -#, elixir-format #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1271 +#, elixir-format msgid "Error." msgstr "Erreur." -#, elixir-format #: lib/pleroma/captcha/kocaptcha.ex:36 +#, elixir-format msgid "Invalid CAPTCHA" msgstr "CAPTCHA invalide" -#, elixir-format #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1700 #: lib/pleroma/web/oauth/oauth_controller.ex:465 +#, elixir-format msgid "Invalid credentials" msgstr "Paramètres d'authentification invalides" -#, elixir-format #: lib/pleroma/plugs/ensure_authenticated_plug.ex:20 +#, elixir-format msgid "Invalid credentials." msgstr "Paramètres d'authentification invalides." -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:154 +#, elixir-format msgid "Invalid indices" msgstr "Indices invalides" -#, elixir-format #: lib/pleroma/web/admin_api/admin_api_controller.ex:411 +#, elixir-format msgid "Invalid parameters" msgstr "Paramètres invalides" -#, elixir-format #: lib/pleroma/web/common_api/utils.ex:377 +#, elixir-format msgid "Invalid password." msgstr "Mot de passe invalide." -#, elixir-format #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:163 +#, elixir-format msgid "Invalid request" msgstr "Requête invalide" -#, elixir-format #: lib/pleroma/captcha/kocaptcha.ex:16 +#, elixir-format msgid "Kocaptcha service unavailable" msgstr "Service Kocaptcha non disponible" -#, elixir-format #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1696 +#, elixir-format msgid "Missing parameters" msgstr "Paramètres manquants" -#, elixir-format #: lib/pleroma/web/common_api/utils.ex:496 +#, elixir-format msgid "No such conversation" msgstr "Conversation inconnue" -#, elixir-format #: lib/pleroma/web/admin_api/admin_api_controller.ex:163 #: lib/pleroma/web/admin_api/admin_api_controller.ex:206 +#, elixir-format msgid "No such permission_group" msgstr "Groupe de permission inconnu" -#, elixir-format #: lib/pleroma/plugs/uploaded_media.ex:69 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:311 #: lib/pleroma/web/admin_api/admin_api_controller.ex:399 #: lib/pleroma/web/mastodon_api/subscription_controller.ex:63 #: lib/pleroma/web/ostatus/ostatus_controller.ex:248 +#, elixir-format msgid "Not found" msgstr "Non Trouvé" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:152 +#, elixir-format msgid "Poll's author can't vote" msgstr "L'auteur·rice d'un sondage ne peut voter" -#, elixir-format #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:443 #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:444 #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:473 #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:476 #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1180 #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1564 +#, elixir-format msgid "Record not found" msgstr "Enregistrement non trouvé" -#, elixir-format #: lib/pleroma/web/admin_api/admin_api_controller.ex:417 #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1570 #: lib/pleroma/web/mastodon_api/subscription_controller.ex:69 #: lib/pleroma/web/ostatus/ostatus_controller.ex:252 +#, elixir-format msgid "Something went wrong" msgstr "Erreur inconnue" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:253 +#, elixir-format msgid "The message visibility must be direct" msgstr "La visibilitée du message doit être « direct »" -#, elixir-format #: lib/pleroma/web/common_api/utils.ex:521 +#, elixir-format msgid "The status is over the character limit" msgstr "Le status est au-delà de la limite de charactères" -#, elixir-format #: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:27 +#, elixir-format msgid "This resource requires authentication." msgstr "Cette resource nécessite une authentification." -#, elixir-format #: lib/pleroma/plugs/rate_limiter.ex:89 +#, elixir-format msgid "Throttled" msgstr "Limité" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:155 +#, elixir-format msgid "Too many choices" msgstr "Trop de choix" -#, elixir-format #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:268 +#, elixir-format msgid "Unhandled activity type" msgstr "Type d'activitée non-gérée" -#, elixir-format #: lib/pleroma/plugs/user_is_admin_plug.ex:20 +#, elixir-format msgid "User is not admin." msgstr "Le compte n'est pas admin." -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:380 +#, elixir-format msgid "Valid `account_id` required" msgstr "Un `account_id` valide est requis" -#, elixir-format #: lib/pleroma/web/admin_api/admin_api_controller.ex:185 +#, elixir-format msgid "You can't revoke your own admin status." msgstr "Vous ne pouvez révoquer votre propre status d'admin." -#, elixir-format #: lib/pleroma/web/oauth/oauth_controller.ex:216 +#, elixir-format msgid "Your account is currently disabled" msgstr "Votre compte est actuellement désactivé" -#, elixir-format #: lib/pleroma/web/oauth/oauth_controller.ex:158 #: lib/pleroma/web/oauth/oauth_controller.ex:213 +#, elixir-format msgid "Your login is missing a confirmed e-mail address" msgstr "Une confirmation de l'addresse de couriel est requise pour l'authentification" -#, elixir-format #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:221 +#, elixir-format msgid "can't read inbox of %{nickname} as %{as_nickname}" msgstr "Ne peut lire la boite de réception de %{nickname} en tant que %{as_nickname}" -#, elixir-format #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:297 +#, elixir-format msgid "can't update outbox of %{nickname} as %{as_nickname}" msgstr "Ne peut poster dans la boite d'émission de %{nickname} en tant que %{as_nickname}" -#, elixir-format #: lib/pleroma/web/common_api/common_api.ex:335 +#, elixir-format msgid "conversation is already muted" msgstr "la conversation est déjà baillonée" -#, elixir-format #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:192 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:317 #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1196 #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1247 +#, elixir-format msgid "error" msgstr "erreur" -#, elixir-format #: lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:789 +#, elixir-format msgid "mascots can only be images" msgstr "les mascottes ne peuvent être que des images" -#, elixir-format #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:34 +#, elixir-format msgid "not found" msgstr "non trouvé" -#, elixir-format #: lib/pleroma/web/oauth/oauth_controller.ex:298 +#, elixir-format msgid "Bad OAuth request." msgstr "Requête OAuth invalide." -#, elixir-format #: lib/pleroma/captcha/captcha.ex:92 +#, elixir-format msgid "CAPTCHA already used" msgstr "CAPTCHA déjà utilisé" -#, elixir-format #: lib/pleroma/captcha/captcha.ex:89 +#, elixir-format msgid "CAPTCHA expired" msgstr "CAPTCHA expiré" -#, elixir-format #: lib/pleroma/plugs/uploaded_media.ex:50 +#, elixir-format msgid "Failed" msgstr "Échec" -#, elixir-format #: lib/pleroma/web/oauth/oauth_controller.ex:314 -msgid "Failed to authenticate: %{message}." -msgstr "Échec de l'authentification: %{message}" - #, elixir-format +msgid "Failed to authenticate: %{message}." +msgstr "Échec de l'authentification : %{message}." + #: lib/pleroma/web/oauth/oauth_controller.ex:345 +#, elixir-format msgid "Failed to set up user account." msgstr "Échec de création de votre compte." -#, elixir-format #: lib/pleroma/plugs/oauth_scopes_plug.ex:37 -msgid "Insufficient permissions: %{permissions}." -msgstr "Permissions insuffisantes: %{permissions}." - #, elixir-format +msgid "Insufficient permissions: %{permissions}." +msgstr "Permissions insuffisantes : %{permissions}." + #: lib/pleroma/plugs/uploaded_media.ex:89 +#, elixir-format msgid "Internal Error" msgstr "Erreur interne" -#, elixir-format #: lib/pleroma/web/oauth/fallback_controller.ex:22 #: lib/pleroma/web/oauth/fallback_controller.ex:29 +#, elixir-format msgid "Invalid Username/Password" msgstr "Nom d'utilisateur/mot de passe invalide" -#, elixir-format #: lib/pleroma/captcha/captcha.ex:107 +#, elixir-format msgid "Invalid answer data" msgstr "Réponse invalide" -#, elixir-format #: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:204 +#, elixir-format msgid "Nodeinfo schema version not handled" msgstr "Version du schéma nodeinfo non géré" -#, elixir-format #: lib/pleroma/web/oauth/oauth_controller.ex:145 -msgid "This action is outside the authorized scopes" -msgstr "Cette action est en dehors des authorisations" # "scopes" ? - #, elixir-format +msgid "This action is outside the authorized scopes" +msgstr "Cette action est en dehors des authorisations" # "scopes" + #: lib/pleroma/web/oauth/fallback_controller.ex:14 +#, elixir-format msgid "Unknown error, please check the details and try again." msgstr "Erreur inconnue, veuillez vérifier les détails et réessayer." -#, elixir-format #: lib/pleroma/web/oauth/oauth_controller.ex:93 #: lib/pleroma/web/oauth/oauth_controller.ex:131 +#, elixir-format msgid "Unlisted redirect_uri." msgstr "redirect_uri non listé." -#, elixir-format #: lib/pleroma/web/oauth/oauth_controller.ex:294 +#, elixir-format msgid "Unsupported OAuth provider: %{provider}." msgstr "Fournisseur OAuth non supporté : %{provider}." -#, elixir-format #: lib/pleroma/uploaders/uploader.ex:71 -msgid "Uploader callback timeout" -msgstr "" -## msgstr "Attente écoulée" - #, elixir-format +msgid "Uploader callback timeout" +msgstr "Temps d'attente du téléverseur écoulé" + +## msgstr "Attente écoulée" #: lib/pleroma/web/uploader_controller.ex:11 #: lib/pleroma/web/uploader_controller.ex:23 +#, elixir-format msgid "bad request" msgstr "requête invalide" diff --git a/priv/gettext/nl/LC_MESSAGES/errors.po b/priv/gettext/nl/LC_MESSAGES/errors.po new file mode 100644 index 000000000..7e12ff96c --- /dev/null +++ b/priv/gettext/nl/LC_MESSAGES/errors.po @@ -0,0 +1,578 @@ +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: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 2.5.1\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 "" + +## 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/pl/LC_MESSAGES/errors.po b/priv/gettext/pl/LC_MESSAGES/errors.po new file mode 100644 index 000000000..7bc39c52a --- /dev/null +++ b/priv/gettext/pl/LC_MESSAGES/errors.po @@ -0,0 +1,587 @@ +msgid "" +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-16 17:13+0000\n" +"Last-Translator: Jędrzej Tomaszewski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2;\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 "nie może być pusty" + +## From Ecto.Changeset.unique_constraint/3 +msgid "has already been taken" +msgstr "jest już zajęty" + +## From Ecto.Changeset.put_change/3 +msgid "is invalid" +msgstr "jest nieprawidłowy" + +## From Ecto.Changeset.validate_format/3 +msgid "has invalid format" +msgstr "ma niepoprawny format" + +## From Ecto.Changeset.validate_subset/3 +msgid "has an invalid entry" +msgstr "ma niepoprawny wpis" + +## From Ecto.Changeset.validate_exclusion/3 +msgid "is reserved" +msgstr "jest zarezerwowany" + +## 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 "jest wciąż powiązane z tym wpisem" + +msgid "are still associated with this entry" +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] "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)" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "should be at least %{count} character(s)" +msgid_plural "should be at least %{count} character(s)" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "should have at least %{count} item(s)" +msgid_plural "should have at least %{count} item(s)" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "should be at most %{count} character(s)" +msgid_plural "should be at most %{count} character(s)" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "should have at most %{count} item(s)" +msgid_plural "should have at most %{count} item(s)" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +## 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 "Nie znaleziono konta" + +#: lib/pleroma/web/common_api/common_api.ex:249 +#, elixir-format +msgid "Already voted" +msgstr "Już zagłosowano" + +#: lib/pleroma/web/oauth/oauth_controller.ex:360 +#, elixir-format +msgid "Bad request" +msgstr "Nieprawidłowe żądanie" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:425 +#, elixir-format +msgid "Can't delete object" +msgstr "Nie można usunąć obiektu" + +#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:196 +#, elixir-format +msgid "Can't delete this post" +msgstr "Nie udało się usunąć tego statusu" + +#: lib/pleroma/web/controller_helper.ex:95 +#: lib/pleroma/web/controller_helper.ex:101 +#, elixir-format +msgid "Can't display this activity" +msgstr "Nie można wyświetlić tej aktywności" + +#: 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 "Nie znaleziono użytkownika" + +#: 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 "Nie udało się polubić obiektu" + +#: lib/pleroma/web/common_api/utils.ex:556 +#, elixir-format +msgid "Cannot post an empty status without attachments" +msgstr "Nie można opublikować pustego statusu bez załączników" + +#: lib/pleroma/web/common_api/utils.ex:504 +#, elixir-format +msgid "Comment must be up to %{max_size} characters" +msgstr "Komentarz może mieć co najwyżej %{max_size} znaków" + +#: 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 "Nie udało się usunąć" + +#: lib/pleroma/web/common_api/common_api.ex:141 +#, elixir-format +msgid "Could not favorite" +msgstr "Nie udało się dodać do ulubionych" + +#: lib/pleroma/web/common_api/common_api.ex:370 +#, elixir-format +msgid "Could not pin" +msgstr "Nie udało się przypiąć" + +#: lib/pleroma/web/common_api/common_api.ex:112 +#, elixir-format +msgid "Could not repeat" +msgstr "Nie udało się powtórzyć" + +#: lib/pleroma/web/common_api/common_api.ex:188 +#, elixir-format +msgid "Could not unfavorite" +msgstr "Nie udało się usunąć z ulubionych" + +#: lib/pleroma/web/common_api/common_api.ex:380 +#, elixir-format +msgid "Could not unpin" +msgstr "Nie udało się odpiąć" + +#: lib/pleroma/web/common_api/common_api.ex:126 +#, elixir-format +msgid "Could not unrepeat" +msgstr "Nie udało się cofnąć powtórzenia" + +#: 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 "Nieprawidłowe hasło." + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:187 +#, elixir-format +msgid "Invalid request" +msgstr "Nieprawidłowe żądanie" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:109 +#, elixir-format +msgid "Kocaptcha service unavailable" +msgstr "Usługa Kocaptcha niedostępna" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:113 +#, elixir-format +msgid "Missing parameters" +msgstr "Brakujące parametry" + +#: lib/pleroma/web/common_api/utils.ex:540 +#, elixir-format +msgid "No such conversation" +msgstr "Nie ma takiej rozmowy" + +#: 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 "Nie ma takiej grupy uprawnień" + +#: 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 "Nie znaleziono" + +#: lib/pleroma/web/common_api/common_api.ex:241 +#, elixir-format +msgid "Poll's author can't vote" +msgstr "Autor ankiety nie może głosować" + +#: 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 "Nie znaleziono rekordu" + +#: 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 "Coś się zepsuło" + +#: 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 "Ten status przekracza limit znaków" + +#: 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 "Nieobsługiwany typ aktywności" + +#: lib/pleroma/web/admin_api/admin_api_controller.ex:536 +#, elixir-format +msgid "You can't revoke your own admin status." +msgstr "Nie możesz odebrać samemu sobie statusu administratora." + +#: 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 "Twoje konto jest obecnie nieaktywne" + +#: 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 "rozmowa jest już wyciszona" + +#: 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 "błąd" + +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:29 +#, elixir-format +msgid "mascots can only be images" +msgstr "maskotki muszą być obrazkami" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:60 +#, elixir-format +msgid "not found" +msgstr "nie znaleziono" + +#: lib/pleroma/web/oauth/oauth_controller.ex:395 +#, elixir-format +msgid "Bad OAuth request." +msgstr "Niepoprawne żądanie OAuth." + +#: lib/pleroma/web/twitter_api/twitter_api.ex:115 +#, elixir-format +msgid "CAPTCHA already used" +msgstr "Zużyta CAPTCHA" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:112 +#, elixir-format +msgid "CAPTCHA expired" +msgstr "CAPTCHA wygasła" + +#: lib/pleroma/plugs/uploaded_media.ex:55 +#, elixir-format +msgid "Failed" +msgstr "Nie udało się" + +#: 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 "Niewystarczające uprawnienia: %{permissions}." + +#: lib/pleroma/plugs/uploaded_media.ex:94 +#, elixir-format +msgid "Internal Error" +msgstr "Błąd wewnętrzny" + +#: lib/pleroma/web/oauth/fallback_controller.ex:22 +#: lib/pleroma/web/oauth/fallback_controller.ex:29 +#, elixir-format +msgid "Invalid Username/Password" +msgstr "Nieprawidłowa nazwa użytkownika lub hasło" + +#: 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 "Nieobsługiwana wersja schematu Nodeinfo" + +#: 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 "Nieznany błąd, sprawdź szczegóły i spróbuj ponownie." + +#: 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 "Nieobsługiwany dostawca OAuth: %{provider}." + +#: 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 "nieprawidłowe żądanie" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:103 +#, elixir-format +msgid "CAPTCHA Error" +msgstr "Błąd CAPTCHA" + +#: 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 "Nieprawidłowa CAPTCHA (Brakujący parametr: %{name})" + +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:92 +#, elixir-format +msgid "List not found" +msgstr "Nie znaleziono listy" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:124 +#, elixir-format +msgid "Missing parameter: %{name}" +msgstr "Brakujący parametr: %{name}" + +#: lib/pleroma/web/oauth/oauth_controller.ex:207 +#: lib/pleroma/web/oauth/oauth_controller.ex:322 +#, elixir-format +msgid "Password reset is required" +msgstr "Wymagany reset hasła" + +#: 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 "Uwierzytelnienie dwuskładnikowe jest włączone, musisz użyć tokenu." + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:210 +#, elixir-format +msgid "Unexpected error occurred while adding file to pack." +msgstr "Nieoczekiwany błąd podczas dodawania pliku do paczki." + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:138 +#, elixir-format +msgid "Unexpected error occurred while creating pack." +msgstr "Nieoczekiwany błąd podczas tworzenia paczki." + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:278 +#, elixir-format +msgid "Unexpected error occurred while removing file from pack." +msgstr "Nieoczekiwany błąd podczas usuwania pliku z paczki." + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:250 +#, elixir-format +msgid "Unexpected error occurred while updating file in pack." +msgstr "Nieoczekiwany błąd podczas zmieniania pliku w paczce." + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:179 +#, elixir-format +msgid "Unexpected error occurred while updating pack metadata." +msgstr "Nieoczekiwany błąd podczas zmieniania metadanych paczki." + +#: 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 "Powiadomienia web push są wyłączone na tej instancji Pleromy" + +#: lib/pleroma/web/admin_api/admin_api_controller.ex:502 +#, elixir-format +msgid "You can't revoke your own admin/moderator status." +msgstr "Nie możesz odebrać samemu sobie statusu administratora/moderatora." + +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:105 +#, elixir-format +msgid "authorization required for timeline view" +msgstr "logowanie wymagane do przeglądania osi czasu" diff --git a/priv/repo/migrations/20190506054542_add_multi_factor_authentication_settings_to_user.exs b/priv/repo/migrations/20190506054542_add_multi_factor_authentication_settings_to_user.exs new file mode 100644 index 000000000..8b653c61f --- /dev/null +++ b/priv/repo/migrations/20190506054542_add_multi_factor_authentication_settings_to_user.exs @@ -0,0 +1,9 @@ +defmodule Pleroma.Repo.Migrations.AddMultiFactorAuthenticationSettingsToUser do + use Ecto.Migration + + def change do + alter table(:users) do + add(:multi_factor_authentication_settings, :map, default: %{}) + end + end +end diff --git a/priv/repo/migrations/20190508193213_create_mfa_tokens.exs b/priv/repo/migrations/20190508193213_create_mfa_tokens.exs new file mode 100644 index 000000000..da9f8fabe --- /dev/null +++ b/priv/repo/migrations/20190508193213_create_mfa_tokens.exs @@ -0,0 +1,16 @@ +defmodule Pleroma.Repo.Migrations.CreateMfaTokens do + use Ecto.Migration + + def change do + create table(:mfa_tokens) do + add(:user_id, references(:users, type: :uuid, on_delete: :delete_all)) + add(:authorization_id, references(:oauth_authorizations, on_delete: :delete_all)) + add(:token, :string) + add(:valid_until, :naive_datetime_usec) + + timestamps() + end + + create(unique_index(:mfa_tokens, :token)) + end +end diff --git a/priv/repo/migrations/20200415181818_update_markers.exs b/priv/repo/migrations/20200415181818_update_markers.exs new file mode 100644 index 000000000..bb9d8e860 --- /dev/null +++ b/priv/repo/migrations/20200415181818_update_markers.exs @@ -0,0 +1,44 @@ +defmodule Pleroma.Repo.Migrations.UpdateMarkers do + use Ecto.Migration + import Ecto.Query + alias Pleroma.Repo + + def up do + update_markers() + end + + def down do + :ok + end + + defp update_markers do + now = NaiveDateTime.utc_now() + + markers_attrs = + from(q in "notifications", + select: %{ + timeline: "notifications", + user_id: q.user_id, + last_read_id: + type(fragment("MAX( CASE WHEN seen = true THEN id ELSE null END )"), :string) + }, + group_by: [q.user_id] + ) + |> Repo.all() + |> Enum.map(fn %{last_read_id: last_read_id} = attrs -> + attrs + |> Map.put(:last_read_id, last_read_id || "") + |> Map.put_new(:inserted_at, now) + |> Map.put_new(:updated_at, now) + end) + + markers_attrs + |> Enum.chunk_every(1000) + |> Enum.each(fn markers_attrs_chunked -> + Repo.insert_all("markers", markers_attrs_chunked, + on_conflict: {:replace, [:last_read_id]}, + conflict_target: [:user_id, :timeline] + ) + end) + end +end diff --git a/priv/repo/migrations/20200428221338_insert_skeletons_for_deleted_users.exs b/priv/repo/migrations/20200428221338_insert_skeletons_for_deleted_users.exs index 11d9a70ba..2adc38186 100644 --- a/priv/repo/migrations/20200428221338_insert_skeletons_for_deleted_users.exs +++ b/priv/repo/migrations/20200428221338_insert_skeletons_for_deleted_users.exs @@ -30,7 +30,7 @@ def change do Repo, "select distinct unnest(nonexistent_locals.recipients) from activities, lateral (select array_agg(recipient) as recipients from unnest(activities.recipients) as recipient where recipient similar to '#{ instance_uri - }/users/[A-Za-z0-9]*' and not(recipient in (select ap_id from users where local = true))) nonexistent_locals;", + }/users/[A-Za-z0-9]*' and not(recipient in (select ap_id from users))) nonexistent_locals;", [], timeout: :infinity ) diff --git a/priv/repo/migrations/20200505072231_remove_magic_key_field.exs b/priv/repo/migrations/20200505072231_remove_magic_key_field.exs new file mode 100644 index 000000000..2635e671b --- /dev/null +++ b/priv/repo/migrations/20200505072231_remove_magic_key_field.exs @@ -0,0 +1,9 @@ +defmodule Pleroma.Repo.Migrations.RemoveMagicKeyField do + use Ecto.Migration + + def change do + alter table(:users) do + remove(:magic_key, :string) + end + 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/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/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-3384.d50ed383.css b/priv/static/adminfe/chunk-3384.d50ed383.css new file mode 100644 index 000000000..70ae2a26b Binary files /dev/null and b/priv/static/adminfe/chunk-3384.d50ed383.css differ diff --git a/priv/static/adminfe/chunk-4011.c4799067.css b/priv/static/adminfe/chunk-7e30.f2b9674a.css similarity index 58% rename from priv/static/adminfe/chunk-4011.c4799067.css rename to priv/static/adminfe/chunk-7e30.f2b9674a.css index 1fb099c0c..a4a56712e 100644 Binary files a/priv/static/adminfe/chunk-4011.c4799067.css and b/priv/static/adminfe/chunk-7e30.f2b9674a.css differ diff --git a/priv/static/adminfe/chunk-e458.6c0703cb.css b/priv/static/adminfe/chunk-e458.6c0703cb.css new file mode 100644 index 000000000..6d2a5d996 Binary files /dev/null and b/priv/static/adminfe/chunk-e458.6c0703cb.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..73e680115 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.0146039c.js b/priv/static/adminfe/static/js/app.0146039c.js new file mode 100644 index 000000000..ab08475ad Binary files /dev/null and b/priv/static/adminfe/static/js/app.0146039c.js differ diff --git a/priv/static/adminfe/static/js/app.0146039c.js.map b/priv/static/adminfe/static/js/app.0146039c.js.map new file mode 100644 index 000000000..178715dc6 Binary files /dev/null and b/priv/static/adminfe/static/js/app.0146039c.js.map differ 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/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-3384.b2ebeeca.js b/priv/static/adminfe/static/js/chunk-3384.b2ebeeca.js new file mode 100644 index 000000000..6a161a0c6 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-3384.b2ebeeca.js differ diff --git a/priv/static/adminfe/static/js/chunk-3384.b2ebeeca.js.map b/priv/static/adminfe/static/js/chunk-3384.b2ebeeca.js.map new file mode 100644 index 000000000..b08db9d6e Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-3384.b2ebeeca.js.map 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-7e30.ec42e302.js b/priv/static/adminfe/static/js/chunk-7e30.ec42e302.js new file mode 100644 index 000000000..0a0e1ca34 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-7e30.ec42e302.js differ diff --git a/priv/static/adminfe/static/js/chunk-7e30.ec42e302.js.map b/priv/static/adminfe/static/js/chunk-7e30.ec42e302.js.map new file mode 100644 index 000000000..bc47158ea Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-7e30.ec42e302.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/chunk-e458.bb460d81.js b/priv/static/adminfe/static/js/chunk-e458.bb460d81.js new file mode 100644 index 000000000..a08717166 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-e458.bb460d81.js differ diff --git a/priv/static/adminfe/static/js/chunk-e458.bb460d81.js.map b/priv/static/adminfe/static/js/chunk-e458.bb460d81.js.map new file mode 100644 index 000000000..89f05fb99 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-e458.bb460d81.js.map differ diff --git a/priv/static/adminfe/static/js/runtime.1b4f6ce0.js b/priv/static/adminfe/static/js/runtime.b08eb412.js similarity index 83% rename from priv/static/adminfe/static/js/runtime.1b4f6ce0.js rename to priv/static/adminfe/static/js/runtime.b08eb412.js index 6558531ba..2a9a4e0db 100644 Binary files a/priv/static/adminfe/static/js/runtime.1b4f6ce0.js and b/priv/static/adminfe/static/js/runtime.b08eb412.js differ diff --git a/priv/static/adminfe/static/js/runtime.1b4f6ce0.js.map b/priv/static/adminfe/static/js/runtime.b08eb412.js.map similarity index 94% rename from priv/static/adminfe/static/js/runtime.1b4f6ce0.js.map rename to priv/static/adminfe/static/js/runtime.b08eb412.js.map index 9295ac636..62f70ee3e 100644 Binary files a/priv/static/adminfe/static/js/runtime.1b4f6ce0.js.map and b/priv/static/adminfe/static/js/runtime.b08eb412.js.map differ diff --git a/priv/static/index.html b/priv/static/index.html index 4fac5c100..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/share.js.LICENSE b/priv/static/packs/flavours/glitch/about.js.LICENSE.txt similarity index 98% rename from priv/static/packs/flavours/glitch/share.js.LICENSE rename to priv/static/packs/flavours/glitch/about.js.LICENSE.txt index 0a0301353..90a9a7678 100644 --- a/priv/static/packs/flavours/glitch/share.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/public.js.LICENSE b/priv/static/packs/flavours/glitch/admin.js.LICENSE.txt similarity index 91% rename from priv/static/packs/flavours/glitch/public.js.LICENSE rename to priv/static/packs/flavours/glitch/admin.js.LICENSE.txt index 448b94017..2196b2def 100644 --- a/priv/static/packs/flavours/glitch/public.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/vanilla/admin.js.LICENSE b/priv/static/packs/flavours/glitch/embed.js.LICENSE.txt similarity index 91% rename from priv/static/packs/flavours/vanilla/admin.js.LICENSE rename to priv/static/packs/flavours/glitch/embed.js.LICENSE.txt index 487bc60d8..2196b2def 100644 --- a/priv/static/packs/flavours/vanilla/admin.js.LICENSE +++ b/priv/static/packs/flavours/glitch/embed.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/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/embed.js.LICENSE b/priv/static/packs/flavours/glitch/public.js.LICENSE.txt similarity index 91% rename from priv/static/packs/flavours/glitch/embed.js.LICENSE rename to priv/static/packs/flavours/glitch/public.js.LICENSE.txt index 448b94017..2196b2def 100644 --- a/priv/static/packs/flavours/glitch/embed.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/about.js.LICENSE b/priv/static/packs/flavours/glitch/share.js.LICENSE.txt similarity index 98% rename from priv/static/packs/flavours/glitch/about.js.LICENSE rename to priv/static/packs/flavours/glitch/share.js.LICENSE.txt index 0a0301353..90a9a7678 100644 --- a/priv/static/packs/flavours/glitch/about.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/glitch/admin.js.LICENSE b/priv/static/packs/flavours/vanilla/admin.js.LICENSE.txt similarity index 91% rename from priv/static/packs/flavours/glitch/admin.js.LICENSE rename to priv/static/packs/flavours/vanilla/admin.js.LICENSE.txt index 448b94017..2196b2def 100644 --- a/priv/static/packs/flavours/glitch/admin.js.LICENSE +++ b/priv/static/packs/flavours/vanilla/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/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/static/config.json b/priv/static/static/config.json index c82678699..727dde73b 100644 --- a/priv/static/static/config.json +++ b/priv/static/static/config.json @@ -1,23 +1,28 @@ { - "theme": "pleroma-dark", - "background": "/static/aurora_borealis.jpg", - "logo": "/static/logo.png", - "logoMask": true, - "logoMargin": ".1em", - "redirectRootNoLogin": "/main/all", - "redirectRootLogin": "/main/friends", - "showInstanceSpecificPanel": false, - "collapseMessageWithSubject": false, - "scopeCopy": true, - "subjectLineBehavior": "email", - "postContentType": "text/plain", "alwaysShowSubjectInput": true, + "background": "/static/aurora_borealis.jpg", + "collapseMessageWithSubject": false, + "disableChat": false, + "greentext": false, + "hideFilteredStatuses": false, + "hideMutedPosts": false, "hidePostStats": false, + "hideSitename": false, "hideUserStats": false, "loginMethod": "password", - "webPushNotifications": false, + "logo": "/static/logo.png", + "logoMargin": ".1em", + "logoMask": true, + "minimalScopesMode": false, "noAttachmentLinks": false, "nsfwCensorImage": "", + "postContentType": "text/plain", + "redirectRootLogin": "/main/friends", + "redirectRootNoLogin": "/main/all", + "scopeCopy": true, "showFeaturesPanel": true, - "minimalScopesMode": false + "showInstanceSpecificPanel": false, + "subjectLineBehavior": "email", + "theme": "pleroma-dark", + "webPushNotifications": false } diff --git a/priv/static/static/font/fontello.1588419330867.woff b/priv/static/static/font/fontello.1588419330867.woff deleted file mode 100644 index 2bf4cbc16..000000000 Binary files a/priv/static/static/font/fontello.1588419330867.woff and /dev/null differ diff --git a/priv/static/static/font/fontello.1588419330867.woff2 b/priv/static/static/font/fontello.1588419330867.woff2 deleted file mode 100644 index a31bf3f29..000000000 Binary files a/priv/static/static/font/fontello.1588419330867.woff2 and /dev/null differ diff --git a/priv/static/static/font/fontello.1588419330867.eot b/priv/static/static/font/fontello.1589385935077.eot similarity index 90% rename from priv/static/static/font/fontello.1588419330867.eot rename to priv/static/static/font/fontello.1589385935077.eot index 7f8c61e38..e5f37013a 100644 Binary files a/priv/static/static/font/fontello.1588419330867.eot and b/priv/static/static/font/fontello.1589385935077.eot differ diff --git a/priv/static/static/font/fontello.1588419330867.svg b/priv/static/static/font/fontello.1589385935077.svg similarity index 98% rename from priv/static/static/font/fontello.1588419330867.svg rename to priv/static/static/font/fontello.1589385935077.svg index 71f81f435..e63fb7529 100644 --- a/priv/static/static/font/fontello.1588419330867.svg +++ b/priv/static/static/font/fontello.1589385935077.svg @@ -114,6 +114,8 @@ + + diff --git a/priv/static/static/font/fontello.1588419330867.ttf b/priv/static/static/font/fontello.1589385935077.ttf similarity index 90% rename from priv/static/static/font/fontello.1588419330867.ttf rename to priv/static/static/font/fontello.1589385935077.ttf index 7dc4f108b..0fde96cea 100644 Binary files a/priv/static/static/font/fontello.1588419330867.ttf and b/priv/static/static/font/fontello.1589385935077.ttf differ diff --git a/priv/static/static/font/fontello.1589385935077.woff b/priv/static/static/font/fontello.1589385935077.woff new file mode 100644 index 000000000..f48488a77 Binary files /dev/null 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.1588419330867.css b/priv/static/static/fontello.1589385935077.css similarity index 88% rename from priv/static/static/fontello.1588419330867.css rename to priv/static/static/fontello.1589385935077.css index 198eff184..746492163 100644 Binary files a/priv/static/static/fontello.1588419330867.css and b/priv/static/static/fontello.1589385935077.css differ diff --git a/priv/static/static/fontello.json b/priv/static/static/fontello.json index 5963b68b4..7f0e7cdd5 100755 --- a/priv/static/static/fontello.json +++ b/priv/static/static/fontello.json @@ -346,6 +346,12 @@ "code": 59427, "src": "fontawesome" }, + { + "uid": "4aad6bb50b02c18508aae9cbe14e784e", + "css": "share", + "code": 61920, + "src": "fontawesome" + }, { "uid": "8b80d36d4ef43889db10bc1f0dc9a862", "css": "user", diff --git a/priv/static/static/js/2.1c407059cd79fca99e19.js b/priv/static/static/js/2.18e4adec273c4ce867a8.js similarity index 80% rename from priv/static/static/js/2.1c407059cd79fca99e19.js rename to priv/static/static/js/2.18e4adec273c4ce867a8.js index 14018d92a..d191aa852 100644 Binary files a/priv/static/static/js/2.1c407059cd79fca99e19.js and b/priv/static/static/js/2.18e4adec273c4ce867a8.js differ diff --git a/priv/static/static/js/2.1c407059cd79fca99e19.js.map b/priv/static/static/js/2.18e4adec273c4ce867a8.js.map similarity index 98% rename from priv/static/static/js/2.1c407059cd79fca99e19.js.map rename to priv/static/static/js/2.18e4adec273c4ce867a8.js.map index cfee79ea8..a7f98bfef 100644 Binary files a/priv/static/static/js/2.1c407059cd79fca99e19.js.map and b/priv/static/static/js/2.18e4adec273c4ce867a8.js.map 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.fa89b90e606f4facd209.js b/priv/static/static/js/app.fa89b90e606f4facd209.js deleted file mode 100644 index a2cbcc337..000000000 Binary files a/priv/static/static/js/app.fa89b90e606f4facd209.js and /dev/null differ diff --git a/priv/static/static/js/app.fa89b90e606f4facd209.js.map b/priv/static/static/js/app.fa89b90e606f4facd209.js.map deleted file mode 100644 index 5722844a9..000000000 Binary files a/priv/static/static/js/app.fa89b90e606f4facd209.js.map and /dev/null differ diff --git a/priv/static/static/js/vendors~app.8aa781e6dd81307f544b.js b/priv/static/static/js/vendors~app.561a1c605d1dfb0e6f74.js similarity index 87% rename from priv/static/static/js/vendors~app.8aa781e6dd81307f544b.js rename to priv/static/static/js/vendors~app.561a1c605d1dfb0e6f74.js index 1d62bb0a4..d1f1a1830 100644 Binary files a/priv/static/static/js/vendors~app.8aa781e6dd81307f544b.js and b/priv/static/static/js/vendors~app.561a1c605d1dfb0e6f74.js differ diff --git a/priv/static/static/js/vendors~app.561a1c605d1dfb0e6f74.js.map b/priv/static/static/js/vendors~app.561a1c605d1dfb0e6f74.js.map new file mode 100644 index 000000000..0d4a859ea Binary files /dev/null and b/priv/static/static/js/vendors~app.561a1c605d1dfb0e6f74.js.map differ diff --git a/priv/static/static/js/vendors~app.8aa781e6dd81307f544b.js.map b/priv/static/static/js/vendors~app.8aa781e6dd81307f544b.js.map deleted file mode 100644 index ce0c86939..000000000 Binary files a/priv/static/static/js/vendors~app.8aa781e6dd81307f544b.js.map and /dev/null differ diff --git a/priv/static/sw-pleroma.js b/priv/static/sw-pleroma.js index 88244a549..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/activity_test.exs b/test/activity_test.exs index 0c19f481b..2a92327d1 100644 --- a/test/activity_test.exs +++ b/test/activity_test.exs @@ -11,6 +11,11 @@ defmodule Pleroma.ActivityTest do alias Pleroma.ThreadMute import Pleroma.Factory + setup_all do + Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) + :ok + end + test "returns an activity by it's AP id" do activity = insert(:note_activity) found_activity = Activity.get_by_ap_id(activity.data["id"]) @@ -107,8 +112,6 @@ test "when association is not loaded" do describe "search" do setup do - Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) - user = insert(:user) params = %{ @@ -125,8 +128,8 @@ test "when association is not loaded" do "to" => ["https://www.w3.org/ns/activitystreams#Public"] } - {:ok, local_activity} = Pleroma.Web.CommonAPI.post(user, %{"status" => "find me!"}) - {:ok, japanese_activity} = Pleroma.Web.CommonAPI.post(user, %{"status" => "更新情報"}) + {:ok, local_activity} = Pleroma.Web.CommonAPI.post(user, %{status: "find me!"}) + {:ok, japanese_activity} = Pleroma.Web.CommonAPI.post(user, %{status: "更新情報"}) {:ok, job} = Pleroma.Web.Federator.incoming_ap_doc(params) {:ok, remote_activity} = ObanHelpers.perform(job) @@ -225,8 +228,8 @@ test "get_by_id/1" do test "all_by_actor_and_id/2" do user = insert(:user) - {:ok, %{id: id1}} = Pleroma.Web.CommonAPI.post(user, %{"status" => "cofe"}) - {:ok, %{id: id2}} = Pleroma.Web.CommonAPI.post(user, %{"status" => "cofefe"}) + {:ok, %{id: id1}} = Pleroma.Web.CommonAPI.post(user, %{status: "cofe"}) + {:ok, %{id: id2}} = Pleroma.Web.CommonAPI.post(user, %{status: "cofefe"}) assert [] == Activity.all_by_actor_and_id(user, []) diff --git a/test/bbs/handler_test.exs b/test/bbs/handler_test.exs index 74982547b..eb716486e 100644 --- a/test/bbs/handler_test.exs +++ b/test/bbs/handler_test.exs @@ -21,8 +21,8 @@ test "getting the home timeline" do {:ok, user} = User.follow(user, followed) - {:ok, _first} = CommonAPI.post(user, %{"status" => "hey"}) - {:ok, _second} = CommonAPI.post(followed, %{"status" => "hello"}) + {:ok, _first} = CommonAPI.post(user, %{status: "hey"}) + {:ok, _second} = CommonAPI.post(followed, %{status: "hello"}) output = capture_io(fn -> @@ -62,7 +62,7 @@ test "replying" do user = insert(:user) another_user = insert(:user) - {:ok, activity} = CommonAPI.post(another_user, %{"status" => "this is a test post"}) + {:ok, activity} = CommonAPI.post(another_user, %{status: "this is a test post"}) activity_object = Object.normalize(activity) output = diff --git a/test/bookmark_test.exs b/test/bookmark_test.exs index 021f79322..2726fe7cd 100644 --- a/test/bookmark_test.exs +++ b/test/bookmark_test.exs @@ -11,7 +11,7 @@ defmodule Pleroma.BookmarkTest do describe "create/2" do test "with valid params" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "Some cool information"}) + {:ok, activity} = CommonAPI.post(user, %{status: "Some cool information"}) {:ok, bookmark} = Bookmark.create(user.id, activity.id) assert bookmark.user_id == user.id assert bookmark.activity_id == activity.id @@ -32,7 +32,7 @@ test "with invalid params" do test "with valid params" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "Some cool information"}) + {:ok, activity} = CommonAPI.post(user, %{status: "Some cool information"}) {:ok, _bookmark} = Bookmark.create(user.id, activity.id) {:ok, _deleted_bookmark} = Bookmark.destroy(user.id, activity.id) @@ -45,7 +45,7 @@ test "gets a bookmark" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => + status: "Scientists Discover The Secret Behind Tenshi Eating A Corndog Being So Cute – Science Daily" }) diff --git a/test/config/config_db_test.exs b/test/config/config_db_test.exs index 6b0e7b4b6..336de7359 100644 --- a/test/config/config_db_test.exs +++ b/test/config/config_db_test.exs @@ -43,11 +43,9 @@ test "get_all_as_keyword/0" do {ConfigDB.from_string(saved.key), ConfigDB.from_binary(saved.value)} ] - assert config[:quack] == [ - level: :info, - meta: [:none], - webhook_url: "https://hooks.slack.com/services/KEY/some_val" - ] + assert config[:quack][:level] == :info + assert config[:quack][:meta] == [:none] + assert config[:quack][:webhook_url] == "https://hooks.slack.com/services/KEY/some_val" end describe "update_or_create/1" do @@ -478,6 +476,14 @@ test "simple keyword" do 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] + end + test "keyword" do binary = ConfigDB.transform([ diff --git a/test/conversation/participation_test.exs b/test/conversation/participation_test.exs index 3536842e8..59a1b6492 100644 --- a/test/conversation/participation_test.exs +++ b/test/conversation/participation_test.exs @@ -16,7 +16,7 @@ test "getting a participation will also preload things" do other_user = insert(:user) {:ok, _activity} = - CommonAPI.post(user, %{"status" => "Hey @#{other_user.nickname}.", "visibility" => "direct"}) + CommonAPI.post(user, %{status: "Hey @#{other_user.nickname}.", visibility: "direct"}) [participation] = Participation.for_user(user) @@ -30,7 +30,7 @@ test "for a new conversation or a reply, it doesn't mark the author's participat other_user = insert(:user) {:ok, _} = - CommonAPI.post(user, %{"status" => "Hey @#{other_user.nickname}.", "visibility" => "direct"}) + CommonAPI.post(user, %{status: "Hey @#{other_user.nickname}.", visibility: "direct"}) user = User.get_cached_by_id(user.id) other_user = User.get_cached_by_id(other_user.id) @@ -43,9 +43,9 @@ test "for a new conversation or a reply, it doesn't mark the author's participat {:ok, _} = CommonAPI.post(other_user, %{ - "status" => "Hey @#{user.nickname}.", - "visibility" => "direct", - "in_reply_to_conversation_id" => participation.id + status: "Hey @#{user.nickname}.", + visibility: "direct", + in_reply_to_conversation_id: participation.id }) user = User.get_cached_by_id(user.id) @@ -64,7 +64,7 @@ test "for a new conversation, it sets the recipents of the participation" do third_user = insert(:user) {:ok, activity} = - CommonAPI.post(user, %{"status" => "Hey @#{other_user.nickname}.", "visibility" => "direct"}) + CommonAPI.post(user, %{status: "Hey @#{other_user.nickname}.", visibility: "direct"}) user = User.get_cached_by_id(user.id) other_user = User.get_cached_by_id(other_user.id) @@ -79,9 +79,9 @@ test "for a new conversation, it sets the recipents of the participation" do {:ok, _activity} = CommonAPI.post(user, %{ - "in_reply_to_status_id" => activity.id, - "status" => "Hey @#{third_user.nickname}.", - "visibility" => "direct" + in_reply_to_status_id: activity.id, + status: "Hey @#{third_user.nickname}.", + visibility: "direct" }) [participation] = Participation.for_user(user) @@ -154,14 +154,14 @@ test "it marks all the user's participations as read" do test "gets all the participations for a user, ordered by updated at descending" do user = insert(:user) - {:ok, activity_one} = CommonAPI.post(user, %{"status" => "x", "visibility" => "direct"}) - {:ok, activity_two} = CommonAPI.post(user, %{"status" => "x", "visibility" => "direct"}) + {:ok, activity_one} = CommonAPI.post(user, %{status: "x", visibility: "direct"}) + {:ok, activity_two} = CommonAPI.post(user, %{status: "x", visibility: "direct"}) {:ok, activity_three} = CommonAPI.post(user, %{ - "status" => "x", - "visibility" => "direct", - "in_reply_to_status_id" => activity_one.id + status: "x", + visibility: "direct", + in_reply_to_status_id: activity_one.id }) # Offset participations because the accuracy of updated_at is down to a second @@ -201,7 +201,7 @@ test "gets all the participations for a user, ordered by updated at descending" test "Doesn't die when the conversation gets empty" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "direct"}) + {:ok, activity} = CommonAPI.post(user, %{status: ".", visibility: "direct"}) [participation] = Participation.for_user_with_last_activity_id(user) assert participation.last_activity_id == activity.id @@ -215,7 +215,7 @@ test "it sets recipients, always keeping the owner of the participation even whe user = insert(:user) other_user = insert(:user) - {:ok, _activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "direct"}) + {:ok, _activity} = CommonAPI.post(user, %{status: ".", visibility: "direct"}) [participation] = Participation.for_user_with_last_activity_id(user) participation = Repo.preload(participation, :recipients) @@ -239,26 +239,26 @@ test "when the user blocks a recipient, the existing conversations with them are {:ok, _direct1} = CommonAPI.post(third_user, %{ - "status" => "Hi @#{blocker.nickname}", - "visibility" => "direct" + status: "Hi @#{blocker.nickname}", + visibility: "direct" }) {:ok, _direct2} = CommonAPI.post(third_user, %{ - "status" => "Hi @#{blocker.nickname}, @#{blocked.nickname}", - "visibility" => "direct" + status: "Hi @#{blocker.nickname}, @#{blocked.nickname}", + visibility: "direct" }) {:ok, _direct3} = CommonAPI.post(blocked, %{ - "status" => "Hi @#{blocker.nickname}", - "visibility" => "direct" + status: "Hi @#{blocker.nickname}", + visibility: "direct" }) {:ok, _direct4} = CommonAPI.post(blocked, %{ - "status" => "Hi @#{blocker.nickname}, @#{third_user.nickname}", - "visibility" => "direct" + status: "Hi @#{blocker.nickname}, @#{third_user.nickname}", + visibility: "direct" }) assert [%{read: false}, %{read: false}, %{read: false}, %{read: false}] = @@ -293,8 +293,8 @@ test "the new conversation with the blocked user is not marked as unread " do # When the blocked user is the author {:ok, _direct1} = CommonAPI.post(blocked, %{ - "status" => "Hi @#{blocker.nickname}", - "visibility" => "direct" + status: "Hi @#{blocker.nickname}", + visibility: "direct" }) assert [%{read: true}] = Participation.for_user(blocker) @@ -303,8 +303,8 @@ test "the new conversation with the blocked user is not marked as unread " do # When the blocked user is a recipient {:ok, _direct2} = CommonAPI.post(third_user, %{ - "status" => "Hi @#{blocker.nickname}, @#{blocked.nickname}", - "visibility" => "direct" + status: "Hi @#{blocker.nickname}, @#{blocked.nickname}", + visibility: "direct" }) assert [%{read: true}, %{read: true}] = Participation.for_user(blocker) @@ -321,8 +321,8 @@ test "the conversation with the blocked user is not marked as unread on a reply" {:ok, _direct1} = CommonAPI.post(blocker, %{ - "status" => "Hi @#{third_user.nickname}, @#{blocked.nickname}", - "visibility" => "direct" + status: "Hi @#{third_user.nickname}, @#{blocked.nickname}", + visibility: "direct" }) {:ok, _user_relationship} = User.block(blocker, blocked) @@ -334,9 +334,9 @@ test "the conversation with the blocked user is not marked as unread on a reply" # When it's a reply from the blocked user {:ok, _direct2} = CommonAPI.post(blocked, %{ - "status" => "reply", - "visibility" => "direct", - "in_reply_to_conversation_id" => blocked_participation.id + status: "reply", + visibility: "direct", + in_reply_to_conversation_id: blocked_participation.id }) assert [%{read: true}] = Participation.for_user(blocker) @@ -347,9 +347,9 @@ test "the conversation with the blocked user is not marked as unread on a reply" # When it's a reply from the third user {:ok, _direct3} = CommonAPI.post(third_user, %{ - "status" => "reply", - "visibility" => "direct", - "in_reply_to_conversation_id" => third_user_participation.id + status: "reply", + visibility: "direct", + in_reply_to_conversation_id: third_user_participation.id }) assert [%{read: true}] = Participation.for_user(blocker) diff --git a/test/conversation_test.exs b/test/conversation_test.exs index 056a0e920..359aa6840 100644 --- a/test/conversation_test.exs +++ b/test/conversation_test.exs @@ -18,7 +18,7 @@ test "it goes through old direct conversations" do other_user = insert(:user) {:ok, _activity} = - CommonAPI.post(user, %{"visibility" => "direct", "status" => "hey @#{other_user.nickname}"}) + CommonAPI.post(user, %{visibility: "direct", status: "hey @#{other_user.nickname}"}) Pleroma.Tests.ObanHelpers.perform_all() @@ -46,7 +46,7 @@ test "it creates a conversation for given ap_id" do test "public posts don't create conversations" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "Hey"}) + {:ok, activity} = CommonAPI.post(user, %{status: "Hey"}) object = Pleroma.Object.normalize(activity) context = object.data["context"] @@ -62,7 +62,7 @@ test "it creates or updates a conversation and participations for a given DM" do tridi = insert(:user) {:ok, activity} = - CommonAPI.post(har, %{"status" => "Hey @#{jafnhar.nickname}", "visibility" => "direct"}) + CommonAPI.post(har, %{status: "Hey @#{jafnhar.nickname}", visibility: "direct"}) object = Pleroma.Object.normalize(activity) context = object.data["context"] @@ -81,9 +81,9 @@ test "it creates or updates a conversation and participations for a given DM" do {:ok, activity} = CommonAPI.post(jafnhar, %{ - "status" => "Hey @#{har.nickname}", - "visibility" => "direct", - "in_reply_to_status_id" => activity.id + status: "Hey @#{har.nickname}", + visibility: "direct", + in_reply_to_status_id: activity.id }) object = Pleroma.Object.normalize(activity) @@ -105,9 +105,9 @@ test "it creates or updates a conversation and participations for a given DM" do {:ok, activity} = CommonAPI.post(tridi, %{ - "status" => "Hey @#{har.nickname}", - "visibility" => "direct", - "in_reply_to_status_id" => activity.id + status: "Hey @#{har.nickname}", + visibility: "direct", + in_reply_to_status_id: activity.id }) object = Pleroma.Object.normalize(activity) @@ -149,14 +149,14 @@ test "create_or_bump_for returns the conversation with participations" do jafnhar = insert(:user, local: false) {:ok, activity} = - CommonAPI.post(har, %{"status" => "Hey @#{jafnhar.nickname}", "visibility" => "direct"}) + CommonAPI.post(har, %{status: "Hey @#{jafnhar.nickname}", visibility: "direct"}) {:ok, conversation} = Conversation.create_or_bump_for(activity) assert length(conversation.participations) == 2 {:ok, activity} = - CommonAPI.post(har, %{"status" => "Hey @#{jafnhar.nickname}", "visibility" => "public"}) + CommonAPI.post(har, %{status: "Hey @#{jafnhar.nickname}", visibility: "public"}) assert {:error, _} = Conversation.create_or_bump_for(activity) end diff --git a/test/filter_test.exs b/test/filter_test.exs index b2a8330ee..63a30c736 100644 --- a/test/filter_test.exs +++ b/test/filter_test.exs @@ -141,17 +141,15 @@ test "updating a filter" do context: ["home"] } - query_two = %Pleroma.Filter{ - user_id: user.id, - filter_id: 1, + changes = %{ phrase: "who", context: ["home", "timeline"] } {:ok, filter_one} = Pleroma.Filter.create(query_one) - {:ok, filter_two} = Pleroma.Filter.update(query_two) + {:ok, filter_two} = Pleroma.Filter.update(filter_one, changes) assert filter_one != filter_two - assert filter_two.phrase == query_two.phrase - assert filter_two.context == query_two.context + assert filter_two.phrase == changes.phrase + assert filter_two.context == changes.context end end 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/html_test.exs b/test/html_test.exs index a006fd492..0a4b4ebbc 100644 --- a/test/html_test.exs +++ b/test/html_test.exs @@ -171,7 +171,7 @@ test "extracts the url" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => + status: "I think I just found the best github repo https://github.com/komeiji-satori/Dress" }) @@ -186,7 +186,7 @@ test "skips mentions" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => + status: "@#{other_user.nickname} install misskey! https://github.com/syuilo/misskey/blob/develop/docs/setup.en.md" }) @@ -203,8 +203,7 @@ test "skips hashtags" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => - "#cofe https://www.pixiv.net/member_illust.php?mode=medium&illust_id=72255140" + status: "#cofe https://www.pixiv.net/member_illust.php?mode=medium&illust_id=72255140" }) object = Object.normalize(activity) @@ -218,9 +217,9 @@ test "skips microformats hashtags" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => + status: "#cofe https://www.pixiv.net/member_illust.php?mode=medium&illust_id=72255140", - "content_type" => "text/html" + content_type: "text/html" }) object = Object.normalize(activity) @@ -232,8 +231,7 @@ test "skips microformats hashtags" do test "does not crash when there is an HTML entity in a link" do user = insert(:user) - {:ok, activity} = - CommonAPI.post(user, %{"status" => "\"http://cofe.com/?boomer=ok&foo=bar\""}) + {:ok, activity} = CommonAPI.post(user, %{status: "\"http://cofe.com/?boomer=ok&foo=bar\""}) object = Object.normalize(activity) 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/connection_test.exs b/test/http/connection_test.exs index 5cc78ad5b..7c94a50b2 100644 --- a/test/http/connection_test.exs +++ b/test/http/connection_test.exs @@ -3,7 +3,7 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTTP.ConnectionTest do - use ExUnit.Case, async: true + use ExUnit.Case use Pleroma.Tests.Helpers import ExUnit.CaptureLog diff --git a/test/http/request_builder_test.exs b/test/http/request_builder_test.exs index f11528c3f..fab909905 100644 --- a/test/http/request_builder_test.exs +++ b/test/http/request_builder_test.exs @@ -3,23 +3,19 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTTP.RequestBuilderTest do - use ExUnit.Case, async: true + use ExUnit.Case use Pleroma.Tests.Helpers - alias Pleroma.Config alias Pleroma.HTTP.Request alias Pleroma.HTTP.RequestBuilder describe "headers/2" do - setup do: clear_config([:http, :send_user_agent]) - setup do: clear_config([:http, :user_agent]) - test "don't send pleroma user agent" do assert RequestBuilder.headers(%Request{}, []) == %Request{headers: []} end test "send pleroma user agent" do - Config.put([:http, :send_user_agent], true) - Config.put([:http, :user_agent], :default) + clear_config([:http, :send_user_agent], true) + clear_config([:http, :user_agent], :default) assert RequestBuilder.headers(%Request{}, []) == %Request{ headers: [{"user-agent", Pleroma.Application.user_agent()}] @@ -27,8 +23,8 @@ test "send pleroma user agent" do end test "send custom user agent" do - Config.put([:http, :send_user_agent], true) - Config.put([:http, :user_agent], "totally-not-pleroma") + clear_config([:http, :send_user_agent], true) + clear_config([:http, :user_agent], "totally-not-pleroma") assert RequestBuilder.headers(%Request{}, []) == %Request{ headers: [{"user-agent", "totally-not-pleroma"}] 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/integration/mastodon_websocket_test.exs b/test/integration/mastodon_websocket_test.exs index bd229c55f..ea17e9feb 100644 --- a/test/integration/mastodon_websocket_test.exs +++ b/test/integration/mastodon_websocket_test.exs @@ -12,17 +12,14 @@ defmodule Pleroma.Integration.MastodonWebsocketTest do alias Pleroma.Web.CommonAPI alias Pleroma.Web.OAuth + @moduletag needs_streamer: true, capture_log: true + @path Pleroma.Web.Endpoint.url() |> URI.parse() |> Map.put(:scheme, "ws") |> Map.put(:path, "/api/v1/streaming") |> URI.to_string() - setup_all do - start_supervised(Pleroma.Web.Streamer.supervisor()) - :ok - end - def start_socket(qs \\ nil, headers \\ []) do path = case qs do @@ -35,7 +32,7 @@ def start_socket(qs \\ nil, headers \\ []) do test "refuses invalid requests" do capture_log(fn -> - assert {:error, {400, _}} = start_socket() + assert {:error, {404, _}} = start_socket() assert {:error, {404, _}} = start_socket("?stream=ncjdk") Process.sleep(30) end) @@ -43,8 +40,8 @@ test "refuses invalid requests" do test "requires authentication and a valid token for protected streams" do capture_log(fn -> - assert {:error, {403, _}} = start_socket("?stream=user&access_token=aaaaaaaaaaaa") - assert {:error, {403, _}} = start_socket("?stream=user") + assert {:error, {401, _}} = start_socket("?stream=user&access_token=aaaaaaaaaaaa") + assert {:error, {401, _}} = start_socket("?stream=user") Process.sleep(30) end) end @@ -58,7 +55,7 @@ test "allows public streams without authentication" do test "receives well formatted events" do user = insert(:user) {:ok, _} = start_socket("?stream=public") - {:ok, activity} = CommonAPI.post(user, %{"status" => "nice echo chamber"}) + {:ok, activity} = CommonAPI.post(user, %{status: "nice echo chamber"}) assert_receive {:text, raw_json}, 1_000 assert {:ok, json} = Jason.decode(raw_json) @@ -103,7 +100,7 @@ test "accepts the 'user' stream", %{token: token} = _state do assert {:ok, _} = start_socket("?stream=user&access_token=#{token.token}") assert capture_log(fn -> - assert {:error, {403, "Forbidden"}} = start_socket("?stream=user") + assert {:error, {401, _}} = start_socket("?stream=user") Process.sleep(30) end) =~ ":badarg" end @@ -112,7 +109,7 @@ test "accepts the 'user:notification' stream", %{token: token} = _state do assert {:ok, _} = start_socket("?stream=user:notification&access_token=#{token.token}") assert capture_log(fn -> - assert {:error, {403, "Forbidden"}} = start_socket("?stream=user:notification") + assert {:error, {401, _}} = start_socket("?stream=user:notification") Process.sleep(30) end) =~ ":badarg" end @@ -121,7 +118,7 @@ test "accepts valid token on Sec-WebSocket-Protocol header", %{token: token} do assert {:ok, _} = start_socket("?stream=user", [{"Sec-WebSocket-Protocol", token.token}]) assert capture_log(fn -> - assert {:error, {403, "Forbidden"}} = + assert {:error, {401, _}} = start_socket("?stream=user", [{"Sec-WebSocket-Protocol", "I am a friend"}]) Process.sleep(30) diff --git a/test/marker_test.exs b/test/marker_test.exs index c80ae16b6..5b6d0b4a4 100644 --- a/test/marker_test.exs +++ b/test/marker_test.exs @@ -8,12 +8,39 @@ defmodule Pleroma.MarkerTest do import Pleroma.Factory + describe "multi_set_unread_count/3" do + test "returns multi" do + user = insert(:user) + + assert %Ecto.Multi{ + operations: [marker: {:run, _}, counters: {:run, _}] + } = + Marker.multi_set_last_read_id( + Ecto.Multi.new(), + user, + "notifications" + ) + end + + test "return empty multi" do + user = insert(:user) + multi = Ecto.Multi.new() + assert Marker.multi_set_last_read_id(multi, user, "home") == multi + end + end + describe "get_markers/2" do test "returns user markers" do user = insert(:user) marker = insert(:marker, user: user) + insert(:notification, user: user) + insert(:notification, user: user) insert(:marker, timeline: "home", user: user) - assert Marker.get_markers(user, ["notifications"]) == [refresh_record(marker)] + + assert Marker.get_markers( + user, + ["notifications"] + ) == [%Marker{refresh_record(marker) | unread_count: 2}] end end diff --git a/test/mfa/backup_codes_test.exs b/test/mfa/backup_codes_test.exs new file mode 100644 index 000000000..7bc01b36b --- /dev/null +++ b/test/mfa/backup_codes_test.exs @@ -0,0 +1,11 @@ +defmodule Pleroma.MFA.BackupCodesTest do + use Pleroma.DataCase + + alias Pleroma.MFA.BackupCodes + + test "generate backup codes" do + codes = BackupCodes.generate(number_of_codes: 2, length: 4) + + assert [<<_::bytes-size(4)>>, <<_::bytes-size(4)>>] = codes + end +end diff --git a/test/mfa/totp_test.exs b/test/mfa/totp_test.exs new file mode 100644 index 000000000..50153d208 --- /dev/null +++ b/test/mfa/totp_test.exs @@ -0,0 +1,17 @@ +defmodule Pleroma.MFA.TOTPTest do + use Pleroma.DataCase + + alias Pleroma.MFA.TOTP + + test "create provisioning_uri to generate qrcode" do + uri = + TOTP.provisioning_uri("test-secrcet", "test@example.com", + issuer: "Plerome-42", + digits: 8, + period: 60 + ) + + assert uri == + "otpauth://totp/test@example.com?digits=8&issuer=Plerome-42&period=60&secret=test-secrcet" + end +end diff --git a/test/mfa_test.exs b/test/mfa_test.exs new file mode 100644 index 000000000..8875cefd9 --- /dev/null +++ b/test/mfa_test.exs @@ -0,0 +1,52 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2018 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.MFATest do + use Pleroma.DataCase + + import Pleroma.Factory + alias Pleroma.MFA + + describe "mfa_settings" do + test "returns settings user's" do + user = + insert(:user, + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + totp: %MFA.Settings.TOTP{secret: "xx", confirmed: true} + } + ) + + settings = MFA.mfa_settings(user) + assert match?(^settings, %{enabled: true, totp: true}) + end + end + + describe "generate backup codes" do + test "returns backup codes" do + user = insert(:user) + + {:ok, [code1, code2]} = MFA.generate_backup_codes(user) + updated_user = refresh_record(user) + [hash1, hash2] = updated_user.multi_factor_authentication_settings.backup_codes + assert Pbkdf2.verify_pass(code1, hash1) + assert Pbkdf2.verify_pass(code2, hash2) + end + end + + describe "invalidate_backup_code" do + test "invalid used code" do + user = insert(:user) + + {:ok, _} = MFA.generate_backup_codes(user) + user = refresh_record(user) + assert length(user.multi_factor_authentication_settings.backup_codes) == 2 + [hash_code | _] = user.multi_factor_authentication_settings.backup_codes + + {:ok, user} = MFA.invalidate_backup_code(user, hash_code) + + assert length(user.multi_factor_authentication_settings.backup_codes) == 1 + end + end +end diff --git a/test/notification_test.exs b/test/notification_test.exs index 601a6c0ca..37c255fee 100644 --- a/test/notification_test.exs +++ b/test/notification_test.exs @@ -12,6 +12,8 @@ defmodule Pleroma.NotificationTest do alias Pleroma.Notification alias Pleroma.Tests.ObanHelpers alias Pleroma.User + alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.Transmogrifier alias Pleroma.Web.CommonAPI alias Pleroma.Web.MastodonAPI.NotificationView @@ -23,8 +25,8 @@ test "creates a notification for an emoji reaction" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "yeah"}) - {:ok, activity, _object} = CommonAPI.react_with_emoji(activity.id, other_user, "☕") + {:ok, activity} = CommonAPI.post(user, %{status: "yeah"}) + {:ok, activity} = CommonAPI.react_with_emoji(activity.id, other_user, "☕") {:ok, [notification]} = Notification.create_notifications(activity) @@ -38,7 +40,7 @@ test "notifies someone when they are directly addressed" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "hey @#{other_user.nickname} and @#{third_user.nickname}" + status: "hey @#{other_user.nickname} and @#{third_user.nickname}" }) {:ok, [notification, other_notification]} = Notification.create_notifications(activity) @@ -47,6 +49,9 @@ test "notifies someone when they are directly addressed" do assert notified_ids == [other_user.id, third_user.id] assert notification.activity_id == activity.id assert other_notification.activity_id == activity.id + + assert [%Pleroma.Marker{unread_count: 2}] = + Pleroma.Marker.get_markers(other_user, ["notifications"]) end test "it creates a notification for subscribed users" do @@ -55,7 +60,7 @@ test "it creates a notification for subscribed users" do User.subscribe(subscriber, user) - {:ok, status} = CommonAPI.post(user, %{"status" => "Akariiiin"}) + {:ok, status} = CommonAPI.post(user, %{status: "Akariiiin"}) {:ok, [notification]} = Notification.create_notifications(status) assert notification.user_id == subscriber.id @@ -68,12 +73,12 @@ test "does not create a notification for subscribed users if status is a reply" User.subscribe(subscriber, other_user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "test post"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test post"}) {:ok, _reply_activity} = CommonAPI.post(other_user, %{ - "status" => "test reply", - "in_reply_to_status_id" => activity.id + status: "test reply", + in_reply_to_status_id: activity.id }) user_notifications = Notification.for_user(user) @@ -93,7 +98,7 @@ test "does not create a notification for subscribed users if status is a reply" blocker = insert(:user) {:ok, _user_relationship} = User.block(blocker, user) - {:ok, _activity} = CommonAPI.post(user, %{"status" => "hey @#{blocker.nickname}!"}) + {:ok, _activity} = CommonAPI.post(user, %{status: "hey @#{blocker.nickname}!"}) blocker_id = blocker.id assert [%Notification{user_id: ^blocker_id}] = Repo.all(Notification) @@ -108,7 +113,7 @@ test "does not create a notification for subscribed users if status is a reply" muter = insert(:user) {:ok, _user_relationships} = User.mute(muter, user) - {:ok, _activity} = CommonAPI.post(user, %{"status" => "hey @#{muter.nickname}!"}) + {:ok, _activity} = CommonAPI.post(user, %{status: "hey @#{muter.nickname}!"}) muter_id = muter.id assert [%Notification{user_id: ^muter_id}] = Repo.all(Notification) @@ -122,14 +127,14 @@ test "does not create a notification for subscribed users if status is a reply" user = insert(:user) thread_muter = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey @#{thread_muter.nickname}!"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey @#{thread_muter.nickname}!"}) {:ok, _} = CommonAPI.add_mute(thread_muter, activity) {:ok, _same_context_activity} = CommonAPI.post(user, %{ - "status" => "hey-hey-hey @#{thread_muter.nickname}!", - "in_reply_to_status_id" => activity.id + status: "hey-hey-hey @#{thread_muter.nickname}!", + in_reply_to_status_id: activity.id }) [pre_mute_notification, post_mute_notification] = @@ -162,14 +167,18 @@ test "does not create a notification for subscribed users if status is a reply" @tag needs_streamer: true test "it creates a notification for user and send to the 'user' and the 'user:notification' stream" do user = insert(:user) - task = Task.async(fn -> assert_receive {:text, _}, 4_000 end) - task_user_notification = Task.async(fn -> assert_receive {:text, _}, 4_000 end) - Streamer.add_socket("user", %{transport_pid: task.pid, assigns: %{user: user}}) - Streamer.add_socket( - "user:notification", - %{transport_pid: task_user_notification.pid, assigns: %{user: user}} - ) + task = + Task.async(fn -> + Streamer.get_topic_and_add_socket("user", user) + assert_receive {:render_with_user, _, _, _}, 4_000 + end) + + task_user_notification = + Task.async(fn -> + Streamer.get_topic_and_add_socket("user:notification", user) + assert_receive {:render_with_user, _, _, _}, 4_000 + end) activity = insert(:note_activity) @@ -193,7 +202,7 @@ test "it creates a notification for the user if the user mutes the activity auth muted = insert(:user) {:ok, _} = User.mute(muter, muted) muter = Repo.get(User, muter.id) - {:ok, activity} = CommonAPI.post(muted, %{"status" => "Hi @#{muter.nickname}"}) + {:ok, activity} = CommonAPI.post(muted, %{status: "Hi @#{muter.nickname}"}) assert Notification.create_notification(activity, muter) end @@ -204,7 +213,7 @@ test "notification created if user is muted without notifications" do {:ok, _user_relationships} = User.mute(muter, muted, false) - {:ok, activity} = CommonAPI.post(muted, %{"status" => "Hi @#{muter.nickname}"}) + {:ok, activity} = CommonAPI.post(muted, %{status: "Hi @#{muter.nickname}"}) assert Notification.create_notification(activity, muter) end @@ -212,13 +221,13 @@ test "notification created if user is muted without notifications" do test "it creates a notification for an activity from a muted thread" do muter = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(muter, %{"status" => "hey"}) + {:ok, activity} = CommonAPI.post(muter, %{status: "hey"}) CommonAPI.add_mute(muter, activity) {:ok, activity} = CommonAPI.post(other_user, %{ - "status" => "Hi @#{muter.nickname}", - "in_reply_to_status_id" => activity.id + status: "Hi @#{muter.nickname}", + in_reply_to_status_id: activity.id }) assert Notification.create_notification(activity, muter) @@ -231,7 +240,7 @@ test "it disables notifications from followers" do insert(:user, notification_settings: %Pleroma.User.NotificationSetting{followers: false}) User.follow(follower, followed) - {:ok, activity} = CommonAPI.post(follower, %{"status" => "hey @#{followed.nickname}"}) + {:ok, activity} = CommonAPI.post(follower, %{status: "hey @#{followed.nickname}"}) refute Notification.create_notification(activity, followed) end @@ -243,7 +252,7 @@ test "it disables notifications from non-followers" do notification_settings: %Pleroma.User.NotificationSetting{non_followers: false} ) - {:ok, activity} = CommonAPI.post(follower, %{"status" => "hey @#{followed.nickname}"}) + {:ok, activity} = CommonAPI.post(follower, %{status: "hey @#{followed.nickname}"}) refute Notification.create_notification(activity, followed) end @@ -254,7 +263,7 @@ test "it disables notifications from people the user follows" do followed = insert(:user) User.follow(follower, followed) follower = Repo.get(User, follower.id) - {:ok, activity} = CommonAPI.post(followed, %{"status" => "hey @#{follower.nickname}"}) + {:ok, activity} = CommonAPI.post(followed, %{status: "hey @#{follower.nickname}"}) refute Notification.create_notification(activity, follower) end @@ -263,7 +272,7 @@ test "it disables notifications from people the user does not follow" do insert(:user, notification_settings: %Pleroma.User.NotificationSetting{non_follows: false}) followed = insert(:user) - {:ok, activity} = CommonAPI.post(followed, %{"status" => "hey @#{follower.nickname}"}) + {:ok, activity} = CommonAPI.post(followed, %{status: "hey @#{follower.nickname}"}) refute Notification.create_notification(activity, follower) end @@ -280,7 +289,7 @@ test "it doesn't create duplicate notifications for follow+subscribed users" do {:ok, _, _, _} = CommonAPI.follow(subscriber, user) User.subscribe(subscriber, user) - {:ok, status} = CommonAPI.post(user, %{"status" => "Akariiiin"}) + {:ok, status} = CommonAPI.post(user, %{status: "Akariiiin"}) {:ok, [_notif]} = Notification.create_notifications(status) end @@ -290,7 +299,7 @@ test "it doesn't create subscription notifications if the recipient cannot see t User.subscribe(subscriber, user) - {:ok, status} = CommonAPI.post(user, %{"status" => "inwisible", "visibility" => "direct"}) + {:ok, status} = CommonAPI.post(user, %{status: "inwisible", visibility: "direct"}) assert {:ok, []} == Notification.create_notifications(status) end @@ -361,7 +370,7 @@ test "it gets a notification that belongs to the user" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey @#{other_user.nickname}"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey @#{other_user.nickname}"}) {:ok, [notification]} = Notification.create_notifications(activity) {:ok, notification} = Notification.get(other_user, notification.id) @@ -373,7 +382,7 @@ test "it returns error if the notification doesn't belong to the user" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey @#{other_user.nickname}"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey @#{other_user.nickname}"}) {:ok, [notification]} = Notification.create_notifications(activity) {:error, _notification} = Notification.get(user, notification.id) @@ -385,7 +394,7 @@ test "it dismisses a notification that belongs to the user" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey @#{other_user.nickname}"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey @#{other_user.nickname}"}) {:ok, [notification]} = Notification.create_notifications(activity) {:ok, notification} = Notification.dismiss(other_user, notification.id) @@ -397,7 +406,7 @@ test "it returns error if the notification doesn't belong to the user" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey @#{other_user.nickname}"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey @#{other_user.nickname}"}) {:ok, [notification]} = Notification.create_notifications(activity) {:error, _notification} = Notification.dismiss(user, notification.id) @@ -412,14 +421,14 @@ test "it clears all notifications belonging to the user" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "hey @#{other_user.nickname} and @#{third_user.nickname} !" + status: "hey @#{other_user.nickname} and @#{third_user.nickname} !" }) {:ok, _notifs} = Notification.create_notifications(activity) {:ok, activity} = CommonAPI.post(user, %{ - "status" => "hey again @#{other_user.nickname} and @#{third_user.nickname} !" + status: "hey again @#{other_user.nickname} and @#{third_user.nickname} !" }) {:ok, _notifs} = Notification.create_notifications(activity) @@ -437,31 +446,42 @@ test "it sets all notifications as read up to a specified notification ID" do {:ok, _activity} = CommonAPI.post(user, %{ - "status" => "hey @#{other_user.nickname}!" + status: "hey @#{other_user.nickname}!" }) {:ok, _activity} = CommonAPI.post(user, %{ - "status" => "hey again @#{other_user.nickname}!" + 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 {:ok, _activity} = CommonAPI.post(user, %{ - "status" => "hey yet again @#{other_user.nickname}!" + 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) assert n1.seen == true assert n2.seen == true assert n3.seen == false + + assert %Pleroma.Marker{} = + m = + Pleroma.Repo.get_by( + Pleroma.Marker, + user_id: other_user.id, + timeline: "notifications" + ) + + assert m.last_read_id == to_string(n2.id) end end @@ -481,7 +501,7 @@ test "Returns recent notifications" do Enum.each(0..10, fn i -> {:ok, _activity} = CommonAPI.post(user1, %{ - "status" => "hey ##{i} @#{user2.nickname}!" + status: "hey ##{i} @#{user2.nickname}!" }) end) @@ -517,7 +537,7 @@ test "it sends notifications to addressed users in new messages" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "hey @#{other_user.nickname}!" + status: "hey @#{other_user.nickname}!" }) {enabled_receivers, _disabled_receivers} = Notification.get_notified_from_activity(activity) @@ -586,7 +606,7 @@ test "it does not send notification to mentioned users in likes" do {:ok, activity_one} = CommonAPI.post(user, %{ - "status" => "hey @#{other_user.nickname}!" + status: "hey @#{other_user.nickname}!" }) {:ok, activity_two} = CommonAPI.favorite(third_user, activity_one.id) @@ -597,6 +617,28 @@ test "it does not send notification to mentioned users in likes" do assert other_user not in enabled_receivers end + test "it only notifies the post's author in likes" do + user = insert(:user) + other_user = insert(:user) + third_user = insert(:user) + + {:ok, activity_one} = + CommonAPI.post(user, %{ + status: "hey @#{other_user.nickname}!" + }) + + {:ok, like_data, _} = Builder.like(third_user, activity_one.object) + + {:ok, like, _} = + like_data + |> Map.put("to", [other_user.ap_id | like_data["to"]]) + |> ActivityPub.persist(local: true) + + {enabled_receivers, _disabled_receivers} = Notification.get_notified_from_activity(like) + + assert other_user not in enabled_receivers + end + test "it does not send notification to mentioned users in announces" do user = insert(:user) other_user = insert(:user) @@ -604,10 +646,10 @@ test "it does not send notification to mentioned users in announces" do {:ok, activity_one} = CommonAPI.post(user, %{ - "status" => "hey @#{other_user.nickname}!" + 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) @@ -620,7 +662,7 @@ test "it returns blocking recipient in disabled recipients list" do other_user = insert(:user) {:ok, _user_relationship} = User.block(other_user, user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey @#{other_user.nickname}!"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey @#{other_user.nickname}!"}) {enabled_receivers, disabled_receivers} = Notification.get_notified_from_activity(activity) @@ -633,7 +675,7 @@ test "it returns notification-muting recipient in disabled recipients list" do other_user = insert(:user) {:ok, _user_relationships} = User.mute(other_user, user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey @#{other_user.nickname}!"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey @#{other_user.nickname}!"}) {enabled_receivers, disabled_receivers} = Notification.get_notified_from_activity(activity) @@ -645,14 +687,14 @@ test "it returns thread-muting recipient in disabled recipients list" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey @#{other_user.nickname}!"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey @#{other_user.nickname}!"}) {:ok, _} = CommonAPI.add_mute(other_user, activity) {:ok, same_context_activity} = CommonAPI.post(user, %{ - "status" => "hey-hey-hey @#{other_user.nickname}!", - "in_reply_to_status_id" => activity.id + status: "hey-hey-hey @#{other_user.nickname}!", + in_reply_to_status_id: activity.id }) {enabled_receivers, disabled_receivers} = @@ -669,7 +711,7 @@ test "it returns non-following domain-blocking recipient in disabled recipients {:ok, other_user} = User.block_domain(other_user, blocked_domain) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey @#{other_user.nickname}!"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey @#{other_user.nickname}!"}) {enabled_receivers, disabled_receivers} = Notification.get_notified_from_activity(activity) @@ -685,7 +727,7 @@ test "it returns following domain-blocking recipient in enabled recipients list" {:ok, other_user} = User.block_domain(other_user, blocked_domain) {:ok, other_user} = User.follow(other_user, user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey @#{other_user.nickname}!"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey @#{other_user.nickname}!"}) {enabled_receivers, disabled_receivers} = Notification.get_notified_from_activity(activity) @@ -699,7 +741,7 @@ test "liking an activity results in 1 notification, then 0 if the activity is de user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "test post"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test post"}) assert Enum.empty?(Notification.for_user(user)) @@ -716,7 +758,7 @@ test "liking an activity results in 1 notification, then 0 if the activity is un user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "test post"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test post"}) assert Enum.empty?(Notification.for_user(user)) @@ -724,7 +766,7 @@ test "liking an activity results in 1 notification, then 0 if the activity is un assert length(Notification.for_user(user)) == 1 - {:ok, _, _, _} = CommonAPI.unfavorite(activity.id, other_user) + {:ok, _} = CommonAPI.unfavorite(activity.id, other_user) assert Enum.empty?(Notification.for_user(user)) end @@ -733,11 +775,11 @@ test "repeating an activity results in 1 notification, then 0 if the activity is user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "test post"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test post"}) 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 @@ -750,15 +792,15 @@ test "repeating an activity results in 1 notification, then 0 if the activity is user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "test post"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test post"}) 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 - {:ok, _, _} = CommonAPI.unrepeat(activity.id, other_user) + {:ok, _} = CommonAPI.unrepeat(activity.id, other_user) assert Enum.empty?(Notification.for_user(user)) end @@ -767,7 +809,7 @@ test "liking an activity which is already deleted does not generate a notificati user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "test post"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test post"}) assert Enum.empty?(Notification.for_user(user)) @@ -784,7 +826,7 @@ test "repeating an activity which is already deleted does not generate a notific user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "test post"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test post"}) assert Enum.empty?(Notification.for_user(user)) @@ -801,13 +843,13 @@ test "replying to a deleted post without tagging does not generate a notificatio user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "test post"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test post"}) {:ok, _deletion_activity} = CommonAPI.delete(activity.id, user) {:ok, _reply_activity} = CommonAPI.post(other_user, %{ - "status" => "test reply", - "in_reply_to_status_id" => activity.id + status: "test reply", + in_reply_to_status_id: activity.id }) assert Enum.empty?(Notification.for_user(user)) @@ -818,7 +860,7 @@ test "notifications are deleted if a local user is deleted" do other_user = insert(:user) {:ok, _activity} = - CommonAPI.post(user, %{"status" => "hi @#{other_user.nickname}", "visibility" => "direct"}) + CommonAPI.post(user, %{status: "hi @#{other_user.nickname}", visibility: "direct"}) refute Enum.empty?(Notification.for_user(other_user)) @@ -929,9 +971,11 @@ test "it returns notifications for muted user without notifications" do muted = insert(:user) {:ok, _user_relationships} = User.mute(user, muted, false) - {:ok, _activity} = CommonAPI.post(muted, %{"status" => "hey @#{user.nickname}"}) + {: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 @@ -939,7 +983,7 @@ test "it doesn't return notifications for muted user with notifications" do muted = insert(:user) {:ok, _user_relationships} = User.mute(user, muted) - {:ok, _activity} = CommonAPI.post(muted, %{"status" => "hey @#{user.nickname}"}) + {:ok, _activity} = CommonAPI.post(muted, %{status: "hey @#{user.nickname}"}) assert Notification.for_user(user) == [] end @@ -949,7 +993,7 @@ test "it doesn't return notifications for blocked user" do blocked = insert(:user) {:ok, _user_relationship} = User.block(user, blocked) - {:ok, _activity} = CommonAPI.post(blocked, %{"status" => "hey @#{user.nickname}"}) + {:ok, _activity} = CommonAPI.post(blocked, %{status: "hey @#{user.nickname}"}) assert Notification.for_user(user) == [] end @@ -959,7 +1003,7 @@ test "it doesn't return notifications for domain-blocked non-followed user" do blocked = insert(:user, ap_id: "http://some-domain.com") {:ok, user} = User.block_domain(user, "some-domain.com") - {:ok, _activity} = CommonAPI.post(blocked, %{"status" => "hey @#{user.nickname}"}) + {:ok, _activity} = CommonAPI.post(blocked, %{status: "hey @#{user.nickname}"}) assert Notification.for_user(user) == [] end @@ -971,7 +1015,7 @@ test "it returns notifications for domain-blocked but followed user" do {:ok, user} = User.block_domain(user, "some-domain.com") {:ok, _} = User.follow(user, blocked) - {:ok, _activity} = CommonAPI.post(blocked, %{"status" => "hey @#{user.nickname}"}) + {:ok, _activity} = CommonAPI.post(blocked, %{status: "hey @#{user.nickname}"}) assert length(Notification.for_user(user)) == 1 end @@ -980,7 +1024,7 @@ test "it doesn't return notifications for muted thread" do user = insert(:user) another_user = insert(:user) - {:ok, activity} = CommonAPI.post(another_user, %{"status" => "hey @#{user.nickname}"}) + {:ok, activity} = CommonAPI.post(another_user, %{status: "hey @#{user.nickname}"}) {:ok, _} = Pleroma.ThreadMute.add_mute(user.id, activity.data["context"]) assert Notification.for_user(user) == [] @@ -991,7 +1035,7 @@ test "it returns notifications from a muted user when with_muted is set" do muted = insert(:user) {:ok, _user_relationships} = User.mute(user, muted) - {:ok, _activity} = CommonAPI.post(muted, %{"status" => "hey @#{user.nickname}"}) + {:ok, _activity} = CommonAPI.post(muted, %{status: "hey @#{user.nickname}"}) assert length(Notification.for_user(user, %{with_muted: true})) == 1 end @@ -1001,7 +1045,7 @@ test "it doesn't return notifications from a blocked user when with_muted is set blocked = insert(:user) {:ok, _user_relationship} = User.block(user, blocked) - {:ok, _activity} = CommonAPI.post(blocked, %{"status" => "hey @#{user.nickname}"}) + {:ok, _activity} = CommonAPI.post(blocked, %{status: "hey @#{user.nickname}"}) assert Enum.empty?(Notification.for_user(user, %{with_muted: true})) end @@ -1012,7 +1056,7 @@ test "when with_muted is set, " <> blocked = insert(:user, ap_id: "http://some-domain.com") {:ok, user} = User.block_domain(user, "some-domain.com") - {:ok, _activity} = CommonAPI.post(blocked, %{"status" => "hey @#{user.nickname}"}) + {:ok, _activity} = CommonAPI.post(blocked, %{status: "hey @#{user.nickname}"}) assert Enum.empty?(Notification.for_user(user, %{with_muted: true})) end @@ -1021,7 +1065,7 @@ test "it returns notifications from muted threads when with_muted is set" do user = insert(:user) another_user = insert(:user) - {:ok, activity} = CommonAPI.post(another_user, %{"status" => "hey @#{user.nickname}"}) + {:ok, activity} = CommonAPI.post(another_user, %{status: "hey @#{user.nickname}"}) {:ok, _} = Pleroma.ThreadMute.add_mute(user.id, activity.data["context"]) assert length(Notification.for_user(user, %{with_muted: true})) == 1 diff --git a/test/plugs/authentication_plug_test.exs b/test/plugs/authentication_plug_test.exs index 646bda9d3..777ae15ae 100644 --- a/test/plugs/authentication_plug_test.exs +++ b/test/plugs/authentication_plug_test.exs @@ -11,12 +11,13 @@ defmodule Pleroma.Plugs.AuthenticationPlugTest do alias Pleroma.User import ExUnit.CaptureLog + import Pleroma.Factory setup %{conn: conn} do user = %User{ id: 1, name: "dude", - password_hash: Comeonin.Pbkdf2.hashpwsalt("guy") + password_hash: Pbkdf2.hash_pwd_salt("guy") } conn = @@ -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 @@ -79,6 +106,13 @@ test "check sha512-crypt hash" do assert AuthenticationPlug.checkpw("password", hash) end + test "check bcrypt hash" do + hash = "$2a$10$uyhC/R/zoE1ndwwCtMusK.TLVzkQ/Ugsbqp3uXI.CTTz0gBw.24jS" + + assert AuthenticationPlug.checkpw("password", hash) + refute AuthenticationPlug.checkpw("password1", hash) + end + test "it returns false when hash invalid" do hash = "psBWV8gxkGOZWBz$PmfCycChoxeJ3GgGzwvhlgacb9mUoZ.KUXNCssekER4SJ7bOK53uXrHNb2e4i8yPFgSKyzaW9CcmrDXWIEMtD1" diff --git a/test/plugs/ensure_authenticated_plug_test.exs b/test/plugs/ensure_authenticated_plug_test.exs index 689fe757f..a0667c5e0 100644 --- a/test/plugs/ensure_authenticated_plug_test.exs +++ b/test/plugs/ensure_authenticated_plug_test.exs @@ -24,11 +24,36 @@ test "it continues if a user is assigned", %{conn: conn} do end end + test "it halts if user is assigned and MFA enabled", %{conn: conn} do + conn = + conn + |> assign(:user, %User{multi_factor_authentication_settings: %{enabled: true}}) + |> assign(:auth_credentials, %{password: "xd-42"}) + |> EnsureAuthenticatedPlug.call(%{}) + + assert conn.status == 403 + assert conn.halted == true + + assert conn.resp_body == + "{\"error\":\"Two-factor authentication enabled, you must use a access token.\"}" + end + + test "it continues if user is assigned and MFA disabled", %{conn: conn} do + conn = + conn + |> assign(:user, %User{multi_factor_authentication_settings: %{enabled: false}}) + |> assign(:auth_credentials, %{password: "xd-42"}) + |> EnsureAuthenticatedPlug.call(%{}) + + refute conn.status == 403 + refute conn.halted + end + describe "with :if_func / :unless_func options" do setup do %{ - true_fn: fn -> true end, - false_fn: fn -> false end + true_fn: fn _conn -> true end, + false_fn: fn _conn -> false end } end 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/stats_test.exs b/test/stats_test.exs index c1aeb2c7f..4b76e2e78 100644 --- a/test/stats_test.exs +++ b/test/stats_test.exs @@ -22,26 +22,26 @@ test "on new status" do user = insert(:user) other_user = insert(:user) - CommonAPI.post(user, %{"visibility" => "public", "status" => "hey"}) + CommonAPI.post(user, %{visibility: "public", status: "hey"}) Enum.each(0..1, fn _ -> CommonAPI.post(user, %{ - "visibility" => "unlisted", - "status" => "hey" + visibility: "unlisted", + status: "hey" }) end) Enum.each(0..2, fn _ -> CommonAPI.post(user, %{ - "visibility" => "direct", - "status" => "hey @#{other_user.nickname}" + visibility: "direct", + status: "hey @#{other_user.nickname}" }) end) Enum.each(0..3, fn _ -> CommonAPI.post(user, %{ - "visibility" => "private", - "status" => "hey" + visibility: "private", + status: "hey" }) end) @@ -51,7 +51,7 @@ test "on new status" do test "on status delete" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"visibility" => "public", "status" => "hey"}) + {:ok, activity} = CommonAPI.post(user, %{visibility: "public", status: "hey"}) assert %{public: 1} = Pleroma.Stats.get_status_visibility_count() CommonAPI.delete(activity.id, user) assert %{public: 0} = Pleroma.Stats.get_status_visibility_count() @@ -59,16 +59,16 @@ test "on status delete" do test "on status visibility update" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"visibility" => "public", "status" => "hey"}) + {:ok, activity} = CommonAPI.post(user, %{visibility: "public", status: "hey"}) assert %{public: 1, private: 0} = Pleroma.Stats.get_status_visibility_count() - {:ok, _} = CommonAPI.update_activity_scope(activity.id, %{"visibility" => "private"}) + {:ok, _} = CommonAPI.update_activity_scope(activity.id, %{visibility: "private"}) assert %{public: 0, private: 1} = Pleroma.Stats.get_status_visibility_count() end test "doesn't count unrelated activities" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"visibility" => "public", "status" => "hey"}) + {:ok, activity} = CommonAPI.post(user, %{visibility: "public", status: "hey"}) _ = CommonAPI.follow(user, other_user) CommonAPI.favorite(other_user, activity.id) CommonAPI.repeat(activity.id, other_user) 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/builders/activity_builder.ex b/test/support/builders/activity_builder.ex index 6e5a8e059..7c4950bfa 100644 --- a/test/support/builders/activity_builder.ex +++ b/test/support/builders/activity_builder.ex @@ -21,7 +21,15 @@ def build(data \\ %{}, opts \\ %{}) do def insert(data \\ %{}, opts \\ %{}) do activity = build(data, opts) - ActivityPub.insert(activity) + + case ActivityPub.insert(activity) do + ok = {:ok, activity} -> + ActivityPub.notify_and_stream(activity) + ok + + error -> + error + end end def insert_list(times, data \\ %{}, opts \\ %{}) do diff --git a/test/support/builders/user_builder.ex b/test/support/builders/user_builder.ex index fcfea666f..0c687c029 100644 --- a/test/support/builders/user_builder.ex +++ b/test/support/builders/user_builder.ex @@ -7,10 +7,11 @@ def build(data \\ %{}) do email: "test@example.org", name: "Test Name", nickname: "testname", - password_hash: Comeonin.Pbkdf2.hashpwsalt("test"), + password_hash: Pbkdf2.hash_pwd_salt("test"), bio: "A tester.", ap_id: "some id", last_digest_emailed_at: NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second), + multi_factor_authentication_settings: %Pleroma.MFA.Settings{}, notification_settings: %Pleroma.User.NotificationSetting{} } diff --git a/test/support/conn_case.ex b/test/support/conn_case.ex index fa30a0c41..b23918dd1 100644 --- a/test/support/conn_case.ex +++ b/test/support/conn_case.ex @@ -74,7 +74,7 @@ defp json_response_and_validate_schema( status = Plug.Conn.Status.code(status) unless lookup[op_id].responses[status] do - err = "Response schema not found for #{conn.status} #{conn.method} #{conn.request_path}" + err = "Response schema not found for #{status} #{conn.method} #{conn.request_path}" flunk(err) end @@ -139,7 +139,11 @@ defp ensure_federating_or_authenticated(conn, url, user) do end if tags[:needs_streamer] do - start_supervised(Pleroma.Web.Streamer.supervisor()) + start_supervised(%{ + id: Pleroma.Web.Streamer.registry(), + start: + {Registry, :start_link, [[keys: :duplicate, name: Pleroma.Web.Streamer.registry()]]} + }) end {:ok, conn: Phoenix.ConnTest.build_conn()} diff --git a/test/support/data_case.ex b/test/support/data_case.ex index 1669f2520..ba8848952 100644 --- a/test/support/data_case.ex +++ b/test/support/data_case.ex @@ -40,7 +40,11 @@ defmodule Pleroma.DataCase do end if tags[:needs_streamer] do - start_supervised(Pleroma.Web.Streamer.supervisor()) + start_supervised(%{ + id: Pleroma.Web.Streamer.registry(), + start: + {Registry, :start_link, [[keys: :duplicate, name: Pleroma.Web.Streamer.registry()]]} + }) end :ok diff --git a/test/support/factory.ex b/test/support/factory.ex index 495764782..6e3676aca 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -29,11 +29,13 @@ def user_factory do name: sequence(:name, &"Test テスト User #{&1}"), email: sequence(:email, &"user#{&1}@example.com"), nickname: sequence(:nickname, &"nick#{&1}"), - password_hash: Comeonin.Pbkdf2.hashpwsalt("test"), + password_hash: Pbkdf2.hash_pwd_salt("test"), bio: sequence(:bio, &"Tester Number #{&1}"), last_digest_emailed_at: NaiveDateTime.utc_now(), last_refreshed_at: NaiveDateTime.utc_now(), - notification_settings: %Pleroma.User.NotificationSetting{} + notification_settings: %Pleroma.User.NotificationSetting{}, + multi_factor_authentication_settings: %Pleroma.MFA.Settings{}, + ap_enabled: true } %{ @@ -422,4 +424,13 @@ def marker_factory do last_read_id: "1" } end + + def mfa_token_factory do + %Pleroma.MFA.Token{ + token: :crypto.strong_rand_bytes(32) |> Base.url_encode64(padding: false), + authorization: build(:oauth_authorization), + valid_until: NaiveDateTime.add(NaiveDateTime.utc_now(), 60 * 10), + user: build(:user) + } + end end diff --git a/test/support/helpers.ex b/test/support/helpers.ex index e68e9bfd2..26281b45e 100644 --- a/test/support/helpers.ex +++ b/test/support/helpers.ex @@ -40,12 +40,18 @@ defmacro __using__(_opts) do clear_config: 2 ] - def to_datetime(naive_datetime) do + def to_datetime(%NaiveDateTime{} = naive_datetime) do naive_datetime |> DateTime.from_naive!("Etc/UTC") |> DateTime.truncate(:second) end + def to_datetime(datetime) when is_binary(datetime) do + datetime + |> NaiveDateTime.from_iso8601!() + |> to_datetime() + end + def collect_ids(collection) do collection |> Enum.map(& &1.id) diff --git a/test/support/http_request_mock.ex b/test/support/http_request_mock.ex index 9624cb0f7..3d5128835 100644 --- a/test/support/http_request_mock.ex +++ b/test/support/http_request_mock.ex @@ -211,7 +211,7 @@ def get( end def get( - "https://squeet.me/xrd/?uri=lain@squeet.me", + "https://squeet.me/xrd/?uri=acct:lain@squeet.me", _, _, [{"accept", "application/xrd+xml,application/jrd+json"}] @@ -870,7 +870,7 @@ def get( end def get( - "https://social.heldscal.la/.well-known/webfinger?resource=shp@social.heldscal.la", + "https://social.heldscal.la/.well-known/webfinger?resource=acct:shp@social.heldscal.la", _, _, [{"accept", "application/xrd+xml,application/jrd+json"}] @@ -883,7 +883,7 @@ def get( end def get( - "https://social.heldscal.la/.well-known/webfinger?resource=invalid_content@social.heldscal.la", + "https://social.heldscal.la/.well-known/webfinger?resource=acct:invalid_content@social.heldscal.la", _, _, [{"accept", "application/xrd+xml,application/jrd+json"}] @@ -900,7 +900,7 @@ def get("http://framatube.org/.well-known/host-meta", _, _, _) do end def get( - "http://framatube.org/main/xrd?uri=framasoft@framatube.org", + "http://framatube.org/main/xrd?uri=acct:framasoft@framatube.org", _, _, [{"accept", "application/xrd+xml,application/jrd+json"}] @@ -959,7 +959,7 @@ def get("http://gerzilla.de/.well-known/host-meta", _, _, _) do end def get( - "https://gerzilla.de/xrd/?uri=kaniini@gerzilla.de", + "https://gerzilla.de/xrd/?uri=acct:kaniini@gerzilla.de", _, _, [{"accept", "application/xrd+xml,application/jrd+json"}] @@ -1155,7 +1155,7 @@ def get("http://404.site" <> _, _, _, _) do end def get( - "https://zetsubou.xn--q9jyb4c/.well-known/webfinger?resource=lain@zetsubou.xn--q9jyb4c", + "https://zetsubou.xn--q9jyb4c/.well-known/webfinger?resource=acct:lain@zetsubou.xn--q9jyb4c", _, _, [{"accept", "application/xrd+xml,application/jrd+json"}] @@ -1168,7 +1168,7 @@ def get( end def get( - "https://zetsubou.xn--q9jyb4c/.well-known/webfinger?resource=https://zetsubou.xn--q9jyb4c/users/lain", + "https://zetsubou.xn--q9jyb4c/.well-known/webfinger?resource=acct:https://zetsubou.xn--q9jyb4c/users/lain", _, _, [{"accept", "application/xrd+xml,application/jrd+json"}] @@ -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/count_statuses_test.exs b/test/tasks/count_statuses_test.exs index 73c2ea690..c5cd16960 100644 --- a/test/tasks/count_statuses_test.exs +++ b/test/tasks/count_statuses_test.exs @@ -13,11 +13,11 @@ defmodule Mix.Tasks.Pleroma.CountStatusesTest do test "counts statuses" do user = insert(:user) - {:ok, _} = CommonAPI.post(user, %{"status" => "test"}) - {:ok, _} = CommonAPI.post(user, %{"status" => "test2"}) + {:ok, _} = CommonAPI.post(user, %{status: "test"}) + {:ok, _} = CommonAPI.post(user, %{status: "test2"}) user2 = insert(:user) - {:ok, _} = CommonAPI.post(user2, %{"status" => "test3"}) + {:ok, _} = CommonAPI.post(user2, %{status: "test3"}) user = refresh_record(user) user2 = refresh_record(user2) diff --git a/test/tasks/database_test.exs b/test/tasks/database_test.exs index 7b05993d3..883828d77 100644 --- a/test/tasks/database_test.exs +++ b/test/tasks/database_test.exs @@ -26,7 +26,7 @@ defmodule Mix.Tasks.Pleroma.DatabaseTest do describe "running remove_embedded_objects" do test "it replaces objects with references" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "test"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test"}) new_data = Map.put(activity.data, "object", activity.object.data) {:ok, activity} = @@ -99,8 +99,8 @@ test "following and followers count are updated" do test "it turns OrderedCollection likes into empty arrays" do [user, user2] = insert_pair(:user) - {:ok, %{id: id, object: object}} = CommonAPI.post(user, %{"status" => "test"}) - {:ok, %{object: object2}} = CommonAPI.post(user, %{"status" => "test test"}) + {:ok, %{id: id, object: object}} = CommonAPI.post(user, %{status: "test"}) + {:ok, %{object: object2}} = CommonAPI.post(user, %{status: "test test"}) CommonAPI.favorite(user2, id) diff --git a/test/tasks/digest_test.exs b/test/tasks/digest_test.exs index 96d762685..eefbc8936 100644 --- a/test/tasks/digest_test.exs +++ b/test/tasks/digest_test.exs @@ -25,7 +25,7 @@ test "Sends digest to the given user" do Enum.each(0..10, fn i -> {:ok, _activity} = CommonAPI.post(user1, %{ - "status" => "hey ##{i} @#{user2.nickname}!" + status: "hey ##{i} @#{user2.nickname}!" }) 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 b63f44c08..851971a77 100644 --- a/test/tasks/refresh_counter_cache_test.exs +++ b/test/tasks/refresh_counter_cache_test.exs @@ -12,26 +12,26 @@ test "counts statuses" do user = insert(:user) other_user = insert(:user) - CommonAPI.post(user, %{"visibility" => "public", "status" => "hey"}) + CommonAPI.post(user, %{visibility: "public", status: "hey"}) Enum.each(0..1, fn _ -> CommonAPI.post(user, %{ - "visibility" => "unlisted", - "status" => "hey" + visibility: "unlisted", + status: "hey" }) end) Enum.each(0..2, fn _ -> CommonAPI.post(user, %{ - "visibility" => "direct", - "status" => "hey @#{other_user.nickname}" + visibility: "direct", + status: "hey @#{other_user.nickname}" }) end) Enum.each(0..3, fn _ -> CommonAPI.post(user, %{ - "visibility" => "private", - "status" => "hey" + visibility: "private", + status: "hey" }) end) diff --git a/test/tasks/user_test.exs b/test/tasks/user_test.exs index 0f6ffb2b1..b55aa1cdb 100644 --- a/test/tasks/user_test.exs +++ b/test/tasks/user_test.exs @@ -3,15 +3,21 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.UserTest do + alias Pleroma.Activity + alias Pleroma.Object alias Pleroma.Repo + alias Pleroma.Tests.ObanHelpers alias Pleroma.User + alias Pleroma.Web.CommonAPI alias Pleroma.Web.OAuth.Authorization alias Pleroma.Web.OAuth.Token use Pleroma.DataCase + use Oban.Testing, repo: Pleroma.Repo - import Pleroma.Factory import ExUnit.CaptureIO + import Mock + import Pleroma.Factory setup_all do Mix.shell(Mix.Shell.Process) @@ -85,14 +91,44 @@ test "user is not created" do describe "running rm" do test "user is deleted" do + clear_config([:instance, :federating], true) user = insert(:user) - Mix.Tasks.Pleroma.User.run(["rm", user.nickname]) + with_mock Pleroma.Web.Federator, + publish: fn _ -> nil end do + Mix.Tasks.Pleroma.User.run(["rm", user.nickname]) + ObanHelpers.perform_all() - assert_received {:mix_shell, :info, [message]} - assert message =~ " deleted" + assert_received {:mix_shell, :info, [message]} + assert message =~ " deleted" + assert %{deactivated: true} = User.get_by_nickname(user.nickname) - assert %{deactivated: true} = User.get_by_nickname(user.nickname) + assert called(Pleroma.Web.Federator.publish(:_)) + end + end + + 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) + + with_mock Pleroma.Web.Federator, + publish: fn _ -> nil end do + Mix.Tasks.Pleroma.User.run(["rm", user.nickname]) + ObanHelpers.perform_all() + + assert_received {:mix_shell, :info, [message]} + assert message =~ " deleted" + assert %{deactivated: true} = User.get_by_nickname(user.nickname) + + assert called(Pleroma.Web.Federator.publish(:_)) + end + + refute Activity.get_by_id(post.id) end test "no user to delete" do @@ -136,31 +172,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" diff --git a/test/uploaders/s3_test.exs b/test/uploaders/s3_test.exs index 6950ccb25..d949c90a5 100644 --- a/test/uploaders/s3_test.exs +++ b/test/uploaders/s3_test.exs @@ -58,7 +58,7 @@ test "it returns path with bucket namespace when namespace is set" do name: "image-tet.jpg", content_type: "image/jpg", path: "test_folder/image-tet.jpg", - tempfile: Path.absname("test/fixtures/image_tmp.jpg") + tempfile: Path.absname("test/instance_static/add/shortcode.png") } [file_upload: file_upload] diff --git a/test/user_search_test.exs b/test/user_search_test.exs index cb847b516..17c63322a 100644 --- a/test/user_search_test.exs +++ b/test/user_search_test.exs @@ -172,6 +172,7 @@ test "works with URIs" do |> Map.put(:search_rank, nil) |> Map.put(:search_type, nil) |> Map.put(:last_digest_emailed_at, nil) + |> Map.put(:multi_factor_authentication_settings, nil) |> Map.put(:notification_settings, nil) assert user == expected diff --git a/test/user_test.exs b/test/user_test.exs index bff337d3e..6b344158d 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -15,7 +15,6 @@ defmodule Pleroma.UserTest do use Pleroma.DataCase use Oban.Testing, repo: Pleroma.Repo - import Mock import Pleroma.Factory import ExUnit.CaptureLog @@ -556,6 +555,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" @@ -586,6 +586,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,8 +1011,8 @@ test "works for announces" do actor = insert(:user) user = insert(:user, local: true) - {:ok, activity} = CommonAPI.post(actor, %{"status" => "hello"}) - {:ok, announce, _} = CommonAPI.repeat(activity.id, user) + {:ok, activity} = CommonAPI.post(actor, %{status: "hello"}) + {:ok, announce} = CommonAPI.repeat(activity.id, user) recipients = User.get_recipients_from_activity(announce) @@ -1008,7 +1028,7 @@ test "get recipients" do {:ok, activity} = CommonAPI.post(actor, %{ - "status" => "hey @#{addressed.nickname} @#{addressed_remote.nickname}" + status: "hey @#{addressed.nickname} @#{addressed_remote.nickname}" }) assert Enum.map([actor, addressed], & &1.ap_id) -- @@ -1030,7 +1050,7 @@ test "has following" do {:ok, activity} = CommonAPI.post(actor, %{ - "status" => "hey @#{addressed.nickname}" + status: "hey @#{addressed.nickname}" }) assert Enum.map([actor, addressed], & &1.ap_id) -- @@ -1091,7 +1111,7 @@ test "hide a user's statuses from timelines and notifications" do {:ok, user2} = User.follow(user2, user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey @#{user2.nickname}"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey @#{user2.nickname}"}) activity = Repo.preload(activity, :bookmark) @@ -1127,11 +1147,11 @@ test "hide a user's statuses from timelines and notifications" do setup do: clear_config([:instance, :federating]) test ".delete_user_activities deletes all create activities", %{user: user} do - {:ok, activity} = CommonAPI.post(user, %{"status" => "2hu"}) + {:ok, activity} = CommonAPI.post(user, %{status: "2hu"}) User.delete_user_activities(user) - # TODO: Remove favorites, repeats, delete activities. + # TODO: Test removal favorites, repeats, delete activities. refute Activity.get_by_id(activity.id) end @@ -1147,7 +1167,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) @@ -1170,30 +1190,32 @@ test "it deactivates a user, all follow relationships and all activities", %{use refute Activity.get_by_id(like_two.id) refute Activity.get_by_id(repeat.id) end + end - test_with_mock "it sends out User Delete activity", - %{user: user}, - Pleroma.Web.ActivityPub.Publisher, - [:passthrough], - [] do - Pleroma.Config.put([:instance, :federating], true) + describe "delete/1 when confirmation is pending" do + setup do + user = insert(:user, confirmation_pending: true) + {:ok, user: user} + end - {:ok, follower} = User.get_or_fetch_by_ap_id("http://mastodon.example.org/users/admin") - {:ok, _} = User.follow(follower, user) + test "deletes user from database when activation required", %{user: user} do + clear_config([:instance, :account_activation_required], true) {:ok, job} = User.delete(user) - {:ok, _user} = ObanHelpers.perform(job) + {:ok, _} = ObanHelpers.perform(job) - assert ObanHelpers.member?( - %{ - "op" => "publish_one", - "params" => %{ - "inbox" => "http://mastodon.example.org/inbox", - "id" => "pleroma:fakeid" - } - }, - all_enqueued(worker: Pleroma.Workers.PublisherWorker) - ) + 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 @@ -1437,7 +1459,7 @@ test "Only includes users who has no recent activity" do {:ok, _} = CommonAPI.post(user, %{ - "status" => "hey @#{to.nickname}" + status: "hey @#{to.nickname}" }) end) @@ -1469,12 +1491,12 @@ test "Only includes users with no read notifications" do Enum.each(recipients, fn to -> {:ok, _} = CommonAPI.post(sender, %{ - "status" => "hey @#{to.nickname}" + status: "hey @#{to.nickname}" }) {:ok, _} = CommonAPI.post(sender, %{ - "status" => "hey again @#{to.nickname}" + status: "hey again @#{to.nickname}" }) end) @@ -1775,4 +1797,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 a8f1f0e26..24edab41a 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 @@ -341,7 +400,7 @@ test "it caches a response", %{conn: conn} do test "cached purged after activity deletion", %{conn: conn} do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "cofe"}) + {:ok, activity} = CommonAPI.post(user, %{status: "cofe"}) uuid = String.split(activity.data["id"], "/") |> List.last() @@ -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!() @@ -815,26 +904,49 @@ test "it inserts an incoming create activity into the database", %{ assert object["content"] == activity["object"]["content"] end + test "it rejects anything beyond 'Note' creations", %{conn: conn, activity: activity} do + user = insert(:user) + + activity = + activity + |> put_in(["object", "type"], "Benis") + + _result = + conn + |> assign(:user, user) + |> put_req_header("content-type", "application/activity+json") + |> post("/users/#{user.nickname}/outbox", activity) + |> json_response(400) + end + test "it inserts an incoming sensitive activity into the database", %{ conn: conn, activity: activity } do user = insert(:user) + conn = assign(conn, :user, user) object = Map.put(activity["object"], "sensitive", true) activity = Map.put(activity, "object", object) - result = + response = conn - |> assign(:user, user) |> put_req_header("content-type", "application/activity+json") |> post("/users/#{user.nickname}/outbox", activity) |> json_response(201) - assert Activity.get_by_ap_id(result["id"]) - assert result["object"] - assert %Object{data: object} = Object.normalize(result["object"]) - assert object["sensitive"] == activity["object"]["sensitive"] - assert object["content"] == activity["object"]["content"] + assert Activity.get_by_ap_id(response["id"]) + assert response["object"] + assert %Object{data: response_object} = Object.normalize(response["object"]) + assert response_object["sensitive"] == true + assert response_object["content"] == activity["object"]["content"] + + representation = + conn + |> put_req_header("accept", "application/activity+json") + |> get(response["id"]) + |> json_response(200) + + assert representation["object"]["sensitive"] == true end test "it rejects an incoming activity with bogus type", %{conn: conn, activity: activity} do diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index 8d2e9844b..4cd14aa4a 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -16,7 +16,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.AdminAPI.AccountView alias Pleroma.Web.CommonAPI - alias Pleroma.Web.Federator import ExUnit.CaptureLog import Mock @@ -33,7 +32,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do describe "streaming out participations" do test "it streams them out" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "direct"}) + {:ok, activity} = CommonAPI.post(user, %{status: ".", visibility: "direct"}) {:ok, conversation} = Pleroma.Conversation.create_or_bump_for(activity) @@ -57,8 +56,8 @@ test "streams them out on activity creation" do stream: fn _, _ -> nil end do {:ok, activity} = CommonAPI.post(user_one, %{ - "status" => "@#{user_two.nickname}", - "visibility" => "direct" + status: "@#{user_two.nickname}", + visibility: "direct" }) conversation = @@ -75,15 +74,13 @@ test "streams them out on activity creation" do test "it restricts by the appropriate visibility" do user = insert(:user) - {:ok, public_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "public"}) + {:ok, public_activity} = CommonAPI.post(user, %{status: ".", visibility: "public"}) - {:ok, direct_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "direct"}) + {:ok, direct_activity} = CommonAPI.post(user, %{status: ".", visibility: "direct"}) - {:ok, unlisted_activity} = - CommonAPI.post(user, %{"status" => ".", "visibility" => "unlisted"}) + {:ok, unlisted_activity} = CommonAPI.post(user, %{status: ".", visibility: "unlisted"}) - {:ok, private_activity} = - CommonAPI.post(user, %{"status" => ".", "visibility" => "private"}) + {:ok, private_activity} = CommonAPI.post(user, %{status: ".", visibility: "private"}) activities = ActivityPub.fetch_activities([], %{:visibility => "direct", "actor_id" => user.ap_id}) @@ -119,15 +116,13 @@ test "it restricts by the appropriate visibility" do test "it excludes by the appropriate visibility" do user = insert(:user) - {:ok, public_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "public"}) + {:ok, public_activity} = CommonAPI.post(user, %{status: ".", visibility: "public"}) - {:ok, direct_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "direct"}) + {:ok, direct_activity} = CommonAPI.post(user, %{status: ".", visibility: "direct"}) - {:ok, unlisted_activity} = - CommonAPI.post(user, %{"status" => ".", "visibility" => "unlisted"}) + {:ok, unlisted_activity} = CommonAPI.post(user, %{status: ".", visibility: "unlisted"}) - {:ok, private_activity} = - CommonAPI.post(user, %{"status" => ".", "visibility" => "private"}) + {:ok, private_activity} = CommonAPI.post(user, %{status: ".", visibility: "private"}) activities = ActivityPub.fetch_activities([], %{ @@ -194,9 +189,9 @@ test "it returns a user that is invisible" do test "it fetches the appropriate tag-restricted posts" do user = insert(:user) - {:ok, status_one} = CommonAPI.post(user, %{"status" => ". #test"}) - {:ok, status_two} = CommonAPI.post(user, %{"status" => ". #essais"}) - {:ok, status_three} = CommonAPI.post(user, %{"status" => ". #test #reject"}) + {:ok, status_one} = CommonAPI.post(user, %{status: ". #test"}) + {: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"}) @@ -433,26 +428,26 @@ test "increases user note count only for public activities" do {:ok, _} = CommonAPI.post(User.get_cached_by_id(user.id), %{ - "status" => "1", - "visibility" => "public" + status: "1", + visibility: "public" }) {:ok, _} = CommonAPI.post(User.get_cached_by_id(user.id), %{ - "status" => "2", - "visibility" => "unlisted" + status: "2", + visibility: "unlisted" }) {:ok, _} = CommonAPI.post(User.get_cached_by_id(user.id), %{ - "status" => "2", - "visibility" => "private" + status: "2", + visibility: "private" }) {:ok, _} = CommonAPI.post(User.get_cached_by_id(user.id), %{ - "status" => "3", - "visibility" => "direct" + status: "3", + visibility: "direct" }) user = User.get_cached_by_id(user.id) @@ -463,27 +458,27 @@ test "increases replies count" do user = insert(:user) user2 = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "1", "visibility" => "public"}) + {:ok, activity} = CommonAPI.post(user, %{status: "1", visibility: "public"}) ap_id = activity.data["id"] - reply_data = %{"status" => "1", "in_reply_to_status_id" => activity.id} + reply_data = %{status: "1", in_reply_to_status_id: activity.id} # public - {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, "visibility", "public")) + {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, :visibility, "public")) assert %{data: data, object: object} = Activity.get_by_ap_id_with_object(ap_id) assert object.data["repliesCount"] == 1 # unlisted - {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, "visibility", "unlisted")) + {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, :visibility, "unlisted")) assert %{data: data, object: object} = Activity.get_by_ap_id_with_object(ap_id) assert object.data["repliesCount"] == 2 # private - {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, "visibility", "private")) + {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, :visibility, "private")) assert %{data: data, object: object} = Activity.get_by_ap_id_with_object(ap_id) assert object.data["repliesCount"] == 2 # direct - {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, "visibility", "direct")) + {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, :visibility, "direct")) assert %{data: data, object: object} = Activity.get_by_ap_id_with_object(ap_id) assert object.data["repliesCount"] == 2 end @@ -542,7 +537,7 @@ test "doesn't return blocked activities" do 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) @@ -570,13 +565,13 @@ test "doesn't return transitive interactions concerning blocked users" do {:ok, _user_relationship} = User.block(blocker, blockee) - {:ok, activity_one} = CommonAPI.post(friend, %{"status" => "hey!"}) + {:ok, activity_one} = CommonAPI.post(friend, %{status: "hey!"}) - {:ok, activity_two} = CommonAPI.post(friend, %{"status" => "hey! @#{blockee.nickname}"}) + {:ok, activity_two} = CommonAPI.post(friend, %{status: "hey! @#{blockee.nickname}"}) - {:ok, activity_three} = CommonAPI.post(blockee, %{"status" => "hey! @#{friend.nickname}"}) + {:ok, activity_three} = CommonAPI.post(blockee, %{status: "hey! @#{friend.nickname}"}) - {:ok, activity_four} = CommonAPI.post(blockee, %{"status" => "hey! @#{blocker.nickname}"}) + {:ok, activity_four} = CommonAPI.post(blockee, %{status: "hey! @#{blocker.nickname}"}) activities = ActivityPub.fetch_activities([], %{"blocking_user" => blocker}) @@ -593,11 +588,11 @@ test "doesn't return announce activities concerning blocked users" do {:ok, _user_relationship} = User.block(blocker, blockee) - {:ok, activity_one} = CommonAPI.post(friend, %{"status" => "hey!"}) + {:ok, activity_one} = CommonAPI.post(friend, %{status: "hey!"}) - {:ok, activity_two} = CommonAPI.post(blockee, %{"status" => "hey! @#{friend.nickname}"}) + {: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}) @@ -623,7 +618,7 @@ test "doesn't return activities from blocked domains" do 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}) @@ -656,7 +651,7 @@ 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}) @@ -704,7 +699,7 @@ 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) @@ -754,7 +749,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)]) @@ -775,10 +770,9 @@ test "excludes reblogs on request" do test "doesn't retrieve unlisted activities" do user = insert(:user) - {:ok, _unlisted_activity} = - CommonAPI.post(user, %{"status" => "yeah", "visibility" => "unlisted"}) + {:ok, _unlisted_activity} = CommonAPI.post(user, %{status: "yeah", visibility: "unlisted"}) - {:ok, listed_activity} = CommonAPI.post(user, %{"status" => "yeah"}) + {:ok, listed_activity} = CommonAPI.post(user, %{status: "yeah"}) [activity] = ActivityPub.fetch_public_activities() @@ -852,7 +846,7 @@ 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}) @@ -866,7 +860,7 @@ 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}) @@ -874,302 +868,6 @@ test "returns reblogs for users for whom reblogs have not been muted" do end end - describe "react to an object" do - test_with_mock "sends an activity to federation", Federator, [:passthrough], [] do - Config.put([:instance, :federating], true) - user = insert(:user) - reactor = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "YASSSS queen slay"}) - assert object = Object.normalize(activity) - - {:ok, reaction_activity, _object} = ActivityPub.react_with_emoji(reactor, object, "🔥") - - assert called(Federator.publish(reaction_activity)) - end - - test "adds an emoji reaction activity to the db" do - user = insert(:user) - reactor = insert(:user) - third_user = insert(:user) - fourth_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "YASSSS queen slay"}) - assert object = Object.normalize(activity) - - {:ok, reaction_activity, object} = ActivityPub.react_with_emoji(reactor, object, "🔥") - - assert reaction_activity - - assert reaction_activity.data["actor"] == reactor.ap_id - assert reaction_activity.data["type"] == "EmojiReact" - assert reaction_activity.data["content"] == "🔥" - assert reaction_activity.data["object"] == object.data["id"] - assert reaction_activity.data["to"] == [User.ap_followers(reactor), activity.data["actor"]] - assert reaction_activity.data["context"] == object.data["context"] - assert object.data["reaction_count"] == 1 - assert object.data["reactions"] == [["🔥", [reactor.ap_id]]] - - {:ok, _reaction_activity, object} = ActivityPub.react_with_emoji(third_user, object, "☕") - - assert object.data["reaction_count"] == 2 - assert object.data["reactions"] == [["🔥", [reactor.ap_id]], ["☕", [third_user.ap_id]]] - - {:ok, _reaction_activity, object} = ActivityPub.react_with_emoji(fourth_user, object, "🔥") - - assert object.data["reaction_count"] == 3 - - assert object.data["reactions"] == [ - ["🔥", [fourth_user.ap_id, reactor.ap_id]], - ["☕", [third_user.ap_id]] - ] - end - - test "reverts emoji reaction on error" do - [user, reactor] = insert_list(2, :user) - - {:ok, activity} = CommonAPI.post(user, %{"status" => "Status"}) - object = Object.normalize(activity) - - with_mock(Utils, [:passthrough], maybe_federate: fn _ -> {:error, :reverted} end) do - assert {:error, :reverted} = ActivityPub.react_with_emoji(reactor, object, "😀") - end - - object = Object.get_by_ap_id(object.data["id"]) - refute object.data["reaction_count"] - refute object.data["reactions"] - end - end - - describe "unreacting to an object" do - test_with_mock "sends an activity to federation", Federator, [:passthrough], [] do - Config.put([:instance, :federating], true) - user = insert(:user) - reactor = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "YASSSS queen slay"}) - assert object = Object.normalize(activity) - - {:ok, reaction_activity, _object} = ActivityPub.react_with_emoji(reactor, object, "🔥") - - assert called(Federator.publish(reaction_activity)) - - {:ok, unreaction_activity, _object} = - ActivityPub.unreact_with_emoji(reactor, reaction_activity.data["id"]) - - assert called(Federator.publish(unreaction_activity)) - end - - test "adds an undo activity to the db" do - user = insert(:user) - reactor = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "YASSSS queen slay"}) - assert object = Object.normalize(activity) - - {:ok, reaction_activity, _object} = ActivityPub.react_with_emoji(reactor, object, "🔥") - - {:ok, unreaction_activity, _object} = - ActivityPub.unreact_with_emoji(reactor, reaction_activity.data["id"]) - - assert unreaction_activity.actor == reactor.ap_id - assert unreaction_activity.data["object"] == reaction_activity.data["id"] - - object = Object.get_by_ap_id(object.data["id"]) - assert object.data["reaction_count"] == 0 - assert object.data["reactions"] == [] - end - - test "reverts emoji unreact on error" do - [user, reactor] = insert_list(2, :user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "Status"}) - object = Object.normalize(activity) - - {:ok, reaction_activity, _object} = ActivityPub.react_with_emoji(reactor, object, "😀") - - with_mock(Utils, [:passthrough], maybe_federate: fn _ -> {:error, :reverted} end) do - assert {:error, :reverted} = - ActivityPub.unreact_with_emoji(reactor, reaction_activity.data["id"]) - end - - object = Object.get_by_ap_id(object.data["id"]) - - assert object.data["reaction_count"] == 1 - assert object.data["reactions"] == [["😀", [reactor.ap_id]]] - end - end - - describe "unliking" do - test_with_mock "sends an activity to federation", Federator, [:passthrough], [] do - Config.put([:instance, :federating], true) - - note_activity = insert(:note_activity) - object = Object.normalize(note_activity) - user = insert(:user) - - {:ok, object} = ActivityPub.unlike(user, object) - refute called(Federator.publish()) - - {:ok, _like_activity} = CommonAPI.favorite(user, note_activity.id) - object = Object.get_by_id(object.id) - assert object.data["like_count"] == 1 - - {:ok, unlike_activity, _, object} = ActivityPub.unlike(user, object) - assert object.data["like_count"] == 0 - - assert called(Federator.publish(unlike_activity)) - end - - test "reverts unliking on error" do - note_activity = insert(:note_activity) - user = insert(:user) - - {:ok, like_activity} = CommonAPI.favorite(user, note_activity.id) - object = Object.normalize(note_activity) - assert object.data["like_count"] == 1 - - with_mock(Utils, [:passthrough], maybe_federate: fn _ -> {:error, :reverted} end) do - assert {:error, :reverted} = ActivityPub.unlike(user, object) - end - - assert Object.get_by_ap_id(object.data["id"]) == object - assert object.data["like_count"] == 1 - assert Activity.get_by_id(like_activity.id) - end - - test "unliking a previously liked object" do - note_activity = insert(:note_activity) - object = Object.normalize(note_activity) - user = insert(:user) - - # Unliking something that hasn't been liked does nothing - {:ok, object} = ActivityPub.unlike(user, object) - assert object.data["like_count"] == 0 - - {:ok, like_activity} = CommonAPI.favorite(user, note_activity.id) - - object = Object.get_by_id(object.id) - assert object.data["like_count"] == 1 - - {:ok, unlike_activity, _, object} = ActivityPub.unlike(user, object) - assert object.data["like_count"] == 0 - - assert Activity.get_by_id(like_activity.id) == nil - assert note_activity.actor in unlike_activity.recipients - 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 "unannouncing an object" do - test "unannouncing a previously announced object" do - note_activity = insert(:note_activity) - object = Object.normalize(note_activity) - user = insert(:user) - - # Unannouncing an object that is not announced does nothing - {:ok, object} = ActivityPub.unannounce(user, object) - refute object.data["announcement_count"] - - {:ok, announce_activity, object} = ActivityPub.announce(user, object) - assert object.data["announcement_count"] == 1 - - {:ok, unannounce_activity, object} = ActivityPub.unannounce(user, object) - assert object.data["announcement_count"] == 0 - - assert unannounce_activity.data["to"] == [ - User.ap_followers(user), - object.data["actor"] - ] - - assert unannounce_activity.data["type"] == "Undo" - assert unannounce_activity.data["object"] == announce_activity.data - assert unannounce_activity.data["actor"] == user.ap_id - assert unannounce_activity.data["context"] == announce_activity.data["context"] - - assert Activity.get_by_id(announce_activity.id) == nil - end - - test "reverts unannouncing on error" 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 - - with_mock(Utils, [:passthrough], maybe_federate: fn _ -> {:error, :reverted} end) do - assert {:error, :reverted} = ActivityPub.unannounce(user, object) - end - - object = Object.get_by_ap_id(object.data["id"]) - assert object.data["announcement_count"] == 1 - end - end - describe "uploading files" do test "copies the file to the configured folder" do file = %Plug.Upload{ @@ -1184,7 +882,7 @@ test "copies the file to the configured folder" do test "works with base64 encoded images" do file = %{ - "img" => data_uri() + img: data_uri() } {:ok, %Object{}} = ActivityPub.upload(file) @@ -1276,7 +974,7 @@ test "creates an undo activity for a pending follow request" do end end - describe "blocking / unblocking" do + describe "blocking" do test "reverts block activity on error" do [blocker, blocked] = insert_list(2, :user) @@ -1289,183 +987,38 @@ test "reverts block activity on error" do end test "creates a block activity" do + clear_config([:instance, :federating], true) blocker = insert(:user) blocked = insert(:user) - {:ok, activity} = ActivityPub.block(blocker, blocked) + 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 - end + assert activity.data["type"] == "Block" + assert activity.data["actor"] == blocker.ap_id + assert activity.data["object"] == blocked.ap_id - test "reverts unblock activity on error" do - [blocker, blocked] = insert_list(2, :user) - {:ok, block_activity} = ActivityPub.block(blocker, blocked) - - with_mock(Utils, [:passthrough], maybe_federate: fn _ -> {:error, :reverted} end) do - assert {:error, :reverted} = ActivityPub.unblock(blocker, blocked) + assert called(Pleroma.Web.Federator.publish(activity)) end - - assert block_activity.data["type"] == "Block" - assert block_activity.data["actor"] == blocker.ap_id - - assert Repo.aggregate(Activity, :count, :id) == 1 - assert Repo.aggregate(Object, :count, :id) == 1 end - test "creates an undo activity for the last block" do + 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) - {:ok, block_activity} = ActivityPub.block(blocker, blocked) - {:ok, activity} = ActivityPub.unblock(blocker, blocked) + with_mock Pleroma.Web.Federator, + publish: fn _ -> nil end do + {:ok, activity} = ActivityPub.block(blocker, blocked) - assert activity.data["type"] == "Undo" - assert activity.data["actor"] == blocker.ap_id + assert activity.data["type"] == "Block" + assert activity.data["actor"] == blocker.ap_id + assert activity.data["object"] == blocked.ap_id - embedded_object = activity.data["object"] - assert is_map(embedded_object) - assert embedded_object["type"] == "Block" - assert embedded_object["object"] == blocked.ap_id - assert embedded_object["id"] == block_activity.data["id"] - end - end - - describe "deletion" do - setup do: clear_config([:instance, :rewrite_policy]) - - test "it reverts deletion on error" do - note = insert(:note_activity) - object = Object.normalize(note) - - with_mock(Utils, [:passthrough], maybe_federate: fn _ -> {:error, :reverted} end) do - assert {:error, :reverted} = ActivityPub.delete(object) + refute called(Pleroma.Web.Federator.publish(:_)) end - - assert Repo.aggregate(Activity, :count, :id) == 1 - assert Repo.get(Object, object.id) == object - assert Activity.get_by_id(note.id) == note - end - - test "it creates a delete activity and deletes the original object" do - note = insert(:note_activity) - object = Object.normalize(note) - {:ok, delete} = ActivityPub.delete(object) - - assert delete.data["type"] == "Delete" - assert delete.data["actor"] == note.data["actor"] - assert delete.data["object"] == object.data["id"] - - assert Activity.get_by_id(delete.id) != nil - - assert Repo.get(Object, object.id).data["type"] == "Tombstone" - end - - test "it doesn't fail when an activity was already deleted" do - {:ok, delete} = insert(:note_activity) |> Object.normalize() |> ActivityPub.delete() - - assert {:ok, ^delete} = delete |> Object.normalize() |> ActivityPub.delete() - end - - test "decrements user note count only for public activities" do - user = insert(:user, note_count: 10) - - {:ok, a1} = - CommonAPI.post(User.get_cached_by_id(user.id), %{ - "status" => "yeah", - "visibility" => "public" - }) - - {:ok, a2} = - CommonAPI.post(User.get_cached_by_id(user.id), %{ - "status" => "yeah", - "visibility" => "unlisted" - }) - - {:ok, a3} = - CommonAPI.post(User.get_cached_by_id(user.id), %{ - "status" => "yeah", - "visibility" => "private" - }) - - {:ok, a4} = - CommonAPI.post(User.get_cached_by_id(user.id), %{ - "status" => "yeah", - "visibility" => "direct" - }) - - {:ok, _} = Object.normalize(a1) |> ActivityPub.delete() - {:ok, _} = Object.normalize(a2) |> ActivityPub.delete() - {:ok, _} = Object.normalize(a3) |> ActivityPub.delete() - {:ok, _} = Object.normalize(a4) |> ActivityPub.delete() - - user = User.get_cached_by_id(user.id) - assert user.note_count == 10 - end - - test "it creates a delete activity and checks that it is also sent to users mentioned by the deleted object" do - user = insert(:user) - note = insert(:note_activity) - object = Object.normalize(note) - - {:ok, object} = - object - |> Object.change(%{ - data: %{ - "actor" => object.data["actor"], - "id" => object.data["id"], - "to" => [user.ap_id], - "type" => "Note" - } - }) - |> Object.update_and_set_cache() - - {:ok, delete} = ActivityPub.delete(object) - - assert user.ap_id in delete.data["to"] - end - - test "decreases reply count" do - user = insert(:user) - user2 = insert(:user) - - {:ok, activity} = CommonAPI.post(user, %{"status" => "1", "visibility" => "public"}) - reply_data = %{"status" => "1", "in_reply_to_status_id" => activity.id} - ap_id = activity.data["id"] - - {:ok, public_reply} = CommonAPI.post(user2, Map.put(reply_data, "visibility", "public")) - {:ok, unlisted_reply} = CommonAPI.post(user2, Map.put(reply_data, "visibility", "unlisted")) - {:ok, private_reply} = CommonAPI.post(user2, Map.put(reply_data, "visibility", "private")) - {:ok, direct_reply} = CommonAPI.post(user2, Map.put(reply_data, "visibility", "direct")) - - _ = CommonAPI.delete(direct_reply.id, user2) - assert %{data: data, object: object} = Activity.get_by_ap_id_with_object(ap_id) - assert object.data["repliesCount"] == 2 - - _ = CommonAPI.delete(private_reply.id, user2) - assert %{data: data, object: object} = Activity.get_by_ap_id_with_object(ap_id) - assert object.data["repliesCount"] == 2 - - _ = CommonAPI.delete(public_reply.id, user2) - assert %{data: data, object: object} = Activity.get_by_ap_id_with_object(ap_id) - assert object.data["repliesCount"] == 1 - - _ = CommonAPI.delete(unlisted_reply.id, user2) - assert %{data: data, object: object} = Activity.get_by_ap_id_with_object(ap_id) - assert object.data["repliesCount"] == 0 - end - - test "it passes delete activity through MRF before deleting the object" do - Pleroma.Config.put([:instance, :rewrite_policy], Pleroma.Web.ActivityPub.MRF.DropPolicy) - - note = insert(:note_activity) - object = Object.normalize(note) - - {:error, {:reject, _}} = ActivityPub.delete(object) - - assert Activity.get_by_id(note.id) - assert Repo.get(Object, object.id).data["type"] == object.data["type"] end end @@ -1484,23 +1037,22 @@ test "it filters broken threads" do {:ok, user3} = User.follow(user3, user2) assert User.following?(user3, user2) - {:ok, public_activity} = CommonAPI.post(user3, %{"status" => "hi 1"}) + {:ok, public_activity} = CommonAPI.post(user3, %{status: "hi 1"}) - {:ok, private_activity_1} = - CommonAPI.post(user3, %{"status" => "hi 2", "visibility" => "private"}) + {:ok, private_activity_1} = CommonAPI.post(user3, %{status: "hi 2", visibility: "private"}) {:ok, private_activity_2} = CommonAPI.post(user2, %{ - "status" => "hi 3", - "visibility" => "private", - "in_reply_to_status_id" => private_activity_1.id + status: "hi 3", + visibility: "private", + in_reply_to_status_id: private_activity_1.id }) {:ok, private_activity_3} = CommonAPI.post(user3, %{ - "status" => "hi 4", - "visibility" => "private", - "in_reply_to_status_id" => private_activity_2.id + status: "hi 4", + visibility: "private", + in_reply_to_status_id: private_activity_2.id }) activities = @@ -1550,9 +1102,9 @@ 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!!!"}) + {: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) @@ -1573,7 +1125,7 @@ test "returned pinned statuses" do reporter = insert(:user) target_account = insert(:user) content = "foobar" - {:ok, activity} = CommonAPI.post(target_account, %{"status" => content}) + {:ok, activity} = CommonAPI.post(target_account, %{status: content}) context = Utils.generate_context_id() reporter_ap_id = reporter.ap_id @@ -1669,8 +1221,7 @@ test "fetch_activities/2 returns activities addressed to a list " do {:ok, list} = Pleroma.List.create("foo", user) {:ok, list} = Pleroma.List.follow(list, member) - {:ok, activity} = - CommonAPI.post(user, %{"status" => "foobar", "visibility" => "list:#{list.id}"}) + {:ok, activity} = CommonAPI.post(user, %{status: "foobar", visibility: "list:#{list.id}"}) activity = Repo.preload(activity, :bookmark) activity = %Activity{activity | thread_muted?: !!activity.thread_muted?} @@ -1688,8 +1239,8 @@ test "fetches private posts for followed users" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "thought I looked cute might delete later :3", - "visibility" => "private" + status: "thought I looked cute might delete later :3", + visibility: "private" }) [result] = ActivityPub.fetch_activities_bounded([user.follower_address], []) @@ -1698,12 +1249,12 @@ test "fetches private posts for followed users" do test "fetches only public posts for other users" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "#cofe", "visibility" => "public"}) + {:ok, activity} = CommonAPI.post(user, %{status: "#cofe", visibility: "public"}) {:ok, _private_activity} = CommonAPI.post(user, %{ - "status" => "why is tenshi eating a corndog so cute?", - "visibility" => "private" + status: "why is tenshi eating a corndog so cute?", + visibility: "private" }) [result] = ActivityPub.fetch_activities_bounded([], [user.follower_address]) @@ -1831,11 +1382,11 @@ test "returns a favourite activities sorted by adds to favorite" do other_user = insert(:user) user1 = insert(:user) user2 = insert(:user) - {:ok, a1} = CommonAPI.post(user1, %{"status" => "bla"}) - {:ok, _a2} = CommonAPI.post(user2, %{"status" => "traps are happy"}) - {:ok, a3} = CommonAPI.post(user2, %{"status" => "Trees Are "}) - {:ok, a4} = CommonAPI.post(user2, %{"status" => "Agent Smith "}) - {:ok, a5} = CommonAPI.post(user1, %{"status" => "Red or Blue "}) + {:ok, a1} = CommonAPI.post(user1, %{status: "bla"}) + {:ok, _a2} = CommonAPI.post(user2, %{status: "traps are happy"}) + {:ok, a3} = CommonAPI.post(user2, %{status: "Trees Are "}) + {:ok, a4} = CommonAPI.post(user2, %{status: "Agent Smith "}) + {:ok, a5} = CommonAPI.post(user1, %{status: "Red or Blue "}) {:ok, _} = CommonAPI.favorite(user, a4.id) {:ok, _} = CommonAPI.favorite(other_user, a3.id) @@ -1915,10 +1466,9 @@ test "old user must be in the new user's `also_known_as` list" do test "doesn't retrieve replies activities with exclude_replies" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "yeah"}) + {:ok, activity} = CommonAPI.post(user, %{status: "yeah"}) - {:ok, _reply} = - CommonAPI.post(user, %{"status" => "yeah", "in_reply_to_status_id" => activity.id}) + {:ok, _reply} = CommonAPI.post(user, %{status: "yeah", in_reply_to_status_id: activity.id}) [result] = ActivityPub.fetch_public_activities(%{"exclude_replies" => "true"}) @@ -2231,84 +1781,84 @@ defp public_messages(_) do {:ok, u2} = User.follow(u2, u3) {:ok, u3} = User.follow(u3, u2) - {:ok, a1} = CommonAPI.post(u1, %{"status" => "Status"}) + {:ok, a1} = CommonAPI.post(u1, %{status: "Status"}) {:ok, r1_1} = CommonAPI.post(u2, %{ - "status" => "@#{u1.nickname} reply from u2 to u1", - "in_reply_to_status_id" => a1.id + status: "@#{u1.nickname} reply from u2 to u1", + in_reply_to_status_id: a1.id }) {:ok, r1_2} = CommonAPI.post(u3, %{ - "status" => "@#{u1.nickname} reply from u3 to u1", - "in_reply_to_status_id" => a1.id + status: "@#{u1.nickname} reply from u3 to u1", + in_reply_to_status_id: a1.id }) {:ok, r1_3} = CommonAPI.post(u4, %{ - "status" => "@#{u1.nickname} reply from u4 to u1", - "in_reply_to_status_id" => a1.id + status: "@#{u1.nickname} reply from u4 to u1", + in_reply_to_status_id: a1.id }) - {:ok, a2} = CommonAPI.post(u2, %{"status" => "Status"}) + {:ok, a2} = CommonAPI.post(u2, %{status: "Status"}) {:ok, r2_1} = CommonAPI.post(u1, %{ - "status" => "@#{u2.nickname} reply from u1 to u2", - "in_reply_to_status_id" => a2.id + status: "@#{u2.nickname} reply from u1 to u2", + in_reply_to_status_id: a2.id }) {:ok, r2_2} = CommonAPI.post(u3, %{ - "status" => "@#{u2.nickname} reply from u3 to u2", - "in_reply_to_status_id" => a2.id + status: "@#{u2.nickname} reply from u3 to u2", + in_reply_to_status_id: a2.id }) {:ok, r2_3} = CommonAPI.post(u4, %{ - "status" => "@#{u2.nickname} reply from u4 to u2", - "in_reply_to_status_id" => a2.id + status: "@#{u2.nickname} reply from u4 to u2", + in_reply_to_status_id: a2.id }) - {:ok, a3} = CommonAPI.post(u3, %{"status" => "Status"}) + {:ok, a3} = CommonAPI.post(u3, %{status: "Status"}) {:ok, r3_1} = CommonAPI.post(u1, %{ - "status" => "@#{u3.nickname} reply from u1 to u3", - "in_reply_to_status_id" => a3.id + status: "@#{u3.nickname} reply from u1 to u3", + in_reply_to_status_id: a3.id }) {:ok, r3_2} = CommonAPI.post(u2, %{ - "status" => "@#{u3.nickname} reply from u2 to u3", - "in_reply_to_status_id" => a3.id + status: "@#{u3.nickname} reply from u2 to u3", + in_reply_to_status_id: a3.id }) {:ok, r3_3} = CommonAPI.post(u4, %{ - "status" => "@#{u3.nickname} reply from u4 to u3", - "in_reply_to_status_id" => a3.id + status: "@#{u3.nickname} reply from u4 to u3", + in_reply_to_status_id: a3.id }) - {:ok, a4} = CommonAPI.post(u4, %{"status" => "Status"}) + {:ok, a4} = CommonAPI.post(u4, %{status: "Status"}) {:ok, r4_1} = CommonAPI.post(u1, %{ - "status" => "@#{u4.nickname} reply from u1 to u4", - "in_reply_to_status_id" => a4.id + status: "@#{u4.nickname} reply from u1 to u4", + in_reply_to_status_id: a4.id }) {:ok, r4_2} = CommonAPI.post(u2, %{ - "status" => "@#{u4.nickname} reply from u2 to u4", - "in_reply_to_status_id" => a4.id + status: "@#{u4.nickname} reply from u2 to u4", + in_reply_to_status_id: a4.id }) {:ok, r4_3} = CommonAPI.post(u3, %{ - "status" => "@#{u4.nickname} reply from u3 to u4", - "in_reply_to_status_id" => a4.id + status: "@#{u4.nickname} reply from u3 to u4", + in_reply_to_status_id: a4.id }) {:ok, @@ -2332,68 +1882,68 @@ defp private_messages(_) do {:ok, u2} = User.follow(u2, u3) {:ok, u3} = User.follow(u3, u2) - {:ok, a1} = CommonAPI.post(u1, %{"status" => "Status", "visibility" => "private"}) + {:ok, a1} = CommonAPI.post(u1, %{status: "Status", visibility: "private"}) {:ok, r1_1} = CommonAPI.post(u2, %{ - "status" => "@#{u1.nickname} reply from u2 to u1", - "in_reply_to_status_id" => a1.id, - "visibility" => "private" + status: "@#{u1.nickname} reply from u2 to u1", + in_reply_to_status_id: a1.id, + visibility: "private" }) {:ok, r1_2} = CommonAPI.post(u3, %{ - "status" => "@#{u1.nickname} reply from u3 to u1", - "in_reply_to_status_id" => a1.id, - "visibility" => "private" + status: "@#{u1.nickname} reply from u3 to u1", + in_reply_to_status_id: a1.id, + visibility: "private" }) {:ok, r1_3} = CommonAPI.post(u4, %{ - "status" => "@#{u1.nickname} reply from u4 to u1", - "in_reply_to_status_id" => a1.id, - "visibility" => "private" + status: "@#{u1.nickname} reply from u4 to u1", + in_reply_to_status_id: a1.id, + visibility: "private" }) - {:ok, a2} = CommonAPI.post(u2, %{"status" => "Status", "visibility" => "private"}) + {:ok, a2} = CommonAPI.post(u2, %{status: "Status", visibility: "private"}) {:ok, r2_1} = CommonAPI.post(u1, %{ - "status" => "@#{u2.nickname} reply from u1 to u2", - "in_reply_to_status_id" => a2.id, - "visibility" => "private" + status: "@#{u2.nickname} reply from u1 to u2", + in_reply_to_status_id: a2.id, + visibility: "private" }) {:ok, r2_2} = CommonAPI.post(u3, %{ - "status" => "@#{u2.nickname} reply from u3 to u2", - "in_reply_to_status_id" => a2.id, - "visibility" => "private" + status: "@#{u2.nickname} reply from u3 to u2", + in_reply_to_status_id: a2.id, + visibility: "private" }) - {:ok, a3} = CommonAPI.post(u3, %{"status" => "Status", "visibility" => "private"}) + {:ok, a3} = CommonAPI.post(u3, %{status: "Status", visibility: "private"}) {:ok, r3_1} = CommonAPI.post(u1, %{ - "status" => "@#{u3.nickname} reply from u1 to u3", - "in_reply_to_status_id" => a3.id, - "visibility" => "private" + status: "@#{u3.nickname} reply from u1 to u3", + in_reply_to_status_id: a3.id, + visibility: "private" }) {:ok, r3_2} = CommonAPI.post(u2, %{ - "status" => "@#{u3.nickname} reply from u2 to u3", - "in_reply_to_status_id" => a3.id, - "visibility" => "private" + status: "@#{u3.nickname} reply from u2 to u3", + in_reply_to_status_id: a3.id, + visibility: "private" }) - {:ok, a4} = CommonAPI.post(u4, %{"status" => "Status", "visibility" => "private"}) + {:ok, a4} = CommonAPI.post(u4, %{status: "Status", visibility: "private"}) {:ok, r4_1} = CommonAPI.post(u1, %{ - "status" => "@#{u4.nickname} reply from u1 to u4", - "in_reply_to_status_id" => a4.id, - "visibility" => "private" + status: "@#{u4.nickname} reply from u1 to u4", + in_reply_to_status_id: a4.id, + visibility: "private" }) {:ok, 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/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index 93989e28a..7953eecf2 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -1,6 +1,8 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do use Pleroma.DataCase + alias Pleroma.Object + alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.ObjectValidator alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator alias Pleroma.Web.ActivityPub.Utils @@ -8,10 +10,182 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do import Pleroma.Factory + describe "EmojiReacts" do + setup do + user = insert(:user) + {:ok, post_activity} = CommonAPI.post(user, %{status: "uguu"}) + + object = Pleroma.Object.get_by_ap_id(post_activity.data["object"]) + + {:ok, valid_emoji_react, []} = Builder.emoji_react(user, object, "👌") + + %{user: user, post_activity: post_activity, valid_emoji_react: valid_emoji_react} + end + + test "it validates a valid EmojiReact", %{valid_emoji_react: valid_emoji_react} do + assert {:ok, _, _} = ObjectValidator.validate(valid_emoji_react, []) + end + + test "it is not valid without a 'content' field", %{valid_emoji_react: valid_emoji_react} do + without_content = + valid_emoji_react + |> Map.delete("content") + + {:error, cng} = ObjectValidator.validate(without_content, []) + + refute cng.valid? + assert {:content, {"can't be blank", [validation: :required]}} in cng.errors + end + + test "it is not valid with a non-emoji content field", %{valid_emoji_react: valid_emoji_react} do + without_emoji_content = + valid_emoji_react + |> Map.put("content", "x") + + {:error, cng} = ObjectValidator.validate(without_emoji_content, []) + + refute cng.valid? + + assert {:content, {"must be a single character emoji", []}} in cng.errors + end + end + + describe "Undos" do + setup do + user = insert(:user) + {:ok, post_activity} = CommonAPI.post(user, %{status: "uguu"}) + {:ok, like} = CommonAPI.favorite(user, post_activity.id) + {:ok, valid_like_undo, []} = Builder.undo(user, like) + + %{user: user, like: like, valid_like_undo: valid_like_undo} + end + + test "it validates a basic like undo", %{valid_like_undo: valid_like_undo} do + assert {:ok, _, _} = ObjectValidator.validate(valid_like_undo, []) + end + + test "it does not validate if the actor of the undo is not the actor of the object", %{ + valid_like_undo: valid_like_undo + } do + other_user = insert(:user, ap_id: "https://gensokyo.2hu/users/raymoo") + + bad_actor = + valid_like_undo + |> Map.put("actor", other_user.ap_id) + + {:error, cng} = ObjectValidator.validate(bad_actor, []) + + assert {:actor, {"not the same as object actor", []}} in cng.errors + end + + test "it does not validate if the object is missing", %{valid_like_undo: valid_like_undo} do + missing_object = + valid_like_undo + |> Map.put("object", "https://gensokyo.2hu/objects/1") + + {:error, cng} = ObjectValidator.validate(missing_object, []) + + assert {:object, {"can't find object", []}} in cng.errors + assert length(cng.errors) == 1 + end + end + + describe "deletes" do + setup do + user = insert(:user) + {:ok, post_activity} = CommonAPI.post(user, %{status: "cancel me daddy"}) + + {:ok, valid_post_delete, _} = Builder.delete(user, post_activity.data["object"]) + {:ok, valid_user_delete, _} = Builder.delete(user, user.ap_id) + + %{user: user, valid_post_delete: valid_post_delete, valid_user_delete: valid_user_delete} + end + + test "it is valid for a post deletion", %{valid_post_delete: valid_post_delete} do + {:ok, valid_post_delete, _} = ObjectValidator.validate(valid_post_delete, []) + + assert valid_post_delete["deleted_activity_id"] + end + + test "it is invalid if the object isn't in a list of certain types", %{ + valid_post_delete: valid_post_delete + } do + object = Object.get_by_ap_id(valid_post_delete["object"]) + + data = + object.data + |> Map.put("type", "Like") + + {:ok, _object} = + object + |> Ecto.Changeset.change(%{data: data}) + |> Object.update_and_set_cache() + + {:error, cng} = ObjectValidator.validate(valid_post_delete, []) + assert {:object, {"object not in allowed types", []}} in cng.errors + end + + test "it is valid for a user deletion", %{valid_user_delete: valid_user_delete} do + assert match?({:ok, _, _}, ObjectValidator.validate(valid_user_delete, [])) + end + + test "it's invalid if the id is missing", %{valid_post_delete: valid_post_delete} do + no_id = + valid_post_delete + |> Map.delete("id") + + {:error, cng} = ObjectValidator.validate(no_id, []) + + assert {:id, {"can't be blank", [validation: :required]}} in cng.errors + end + + test "it's invalid if the object doesn't exist", %{valid_post_delete: valid_post_delete} do + missing_object = + valid_post_delete + |> Map.put("object", "http://does.not/exist") + + {:error, cng} = ObjectValidator.validate(missing_object, []) + + assert {:object, {"can't find object", []}} in cng.errors + end + + test "it's invalid if the actor of the object and the actor of delete are from different domains", + %{valid_post_delete: valid_post_delete} do + valid_user = insert(:user) + + valid_other_actor = + valid_post_delete + |> Map.put("actor", valid_user.ap_id) + + assert match?({:ok, _, _}, ObjectValidator.validate(valid_other_actor, [])) + + invalid_other_actor = + valid_post_delete + |> Map.put("actor", "https://gensokyo.2hu/users/raymoo") + + {:error, cng} = ObjectValidator.validate(invalid_other_actor, []) + + assert {:actor, {"is not allowed to delete object", []}} in cng.errors + end + + test "it's valid if the actor of the object is a local superuser", + %{valid_post_delete: valid_post_delete} do + user = + insert(:user, local: true, is_moderator: true, ap_id: "https://gensokyo.2hu/users/raymoo") + + valid_other_actor = + valid_post_delete + |> Map.put("actor", user.ap_id) + + {:ok, _, meta} = ObjectValidator.validate(valid_other_actor, []) + assert meta[:do_not_federate] + end + end + describe "likes" do setup do user = insert(:user) - {:ok, post_activity} = CommonAPI.post(user, %{"status" => "uguu"}) + {:ok, post_activity} = CommonAPI.post(user, %{status: "uguu"}) valid_like = %{ "to" => [user.ap_id], @@ -106,4 +280,96 @@ 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 end diff --git a/test/web/activity_pub/object_validators/types/recipients_test.exs b/test/web/activity_pub/object_validators/types/recipients_test.exs new file mode 100644 index 000000000..f278f039b --- /dev/null +++ b/test/web/activity_pub/object_validators/types/recipients_test.exs @@ -0,0 +1,27 @@ +defmodule Pleroma.Web.ObjectValidators.Types.RecipientsTest do + alias Pleroma.Web.ActivityPub.ObjectValidators.Types.Recipients + use Pleroma.DataCase + + test "it asserts that all elements of the list are object ids" do + list = ["https://lain.com/users/lain", "invalid"] + + assert :error == Recipients.cast(list) + end + + test "it works with a list" do + list = ["https://lain.com/users/lain"] + assert {:ok, list} == Recipients.cast(list) + end + + test "it works with a list with whole objects" do + list = ["https://lain.com/users/lain", %{"id" => "https://gensokyo.2hu/users/raymoo"}] + resulting_list = ["https://gensokyo.2hu/users/raymoo", "https://lain.com/users/lain"] + assert {:ok, resulting_list} == Recipients.cast(list) + end + + test "it turns a single string into a list" do + recipient = "https://lain.com/users/lain" + + assert {:ok, [recipient]} == Recipients.cast(recipient) + end +end diff --git a/test/web/activity_pub/pipeline_test.exs b/test/web/activity_pub/pipeline_test.exs index f3c437498..26557720b 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] @@ -83,5 +88,44 @@ test "it goes through validation, filtering, persisting, side effects without fe 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] + }, + { + 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 end end 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 0b6b55156..a80104ea7 100644 --- a/test/web/activity_pub/side_effects_test.exs +++ b/test/web/activity_pub/side_effects_test.exs @@ -3,23 +3,273 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.SideEffectsTest do + use Oban.Testing, repo: Pleroma.Repo use Pleroma.DataCase + alias Pleroma.Activity alias Pleroma.Notification alias Pleroma.Object alias Pleroma.Repo + alias Pleroma.Tests.ObanHelpers + alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.SideEffects alias Pleroma.Web.CommonAPI import Pleroma.Factory + import Mock + + describe "delete objects" do + setup do + user = insert(:user) + other_user = insert(:user) + + {:ok, op} = CommonAPI.post(other_user, %{status: "big oof"}) + {:ok, post} = CommonAPI.post(user, %{status: "hey", in_reply_to_id: op}) + {:ok, favorite} = CommonAPI.favorite(user, post.id) + object = Object.normalize(post) + {:ok, delete_data, _meta} = Builder.delete(user, object.data["id"]) + {:ok, delete_user_data, _meta} = Builder.delete(user, user.ap_id) + {:ok, delete, _meta} = ActivityPub.persist(delete_data, local: true) + {:ok, delete_user, _meta} = ActivityPub.persist(delete_user_data, local: true) + + %{ + user: user, + delete: delete, + post: post, + object: object, + delete_user: delete_user, + op: op, + favorite: favorite + } + end + + test "it handles object deletions", %{ + delete: delete, + post: post, + object: object, + user: user, + op: op, + favorite: favorite + } do + with_mock Pleroma.Web.ActivityPub.ActivityPub, [:passthrough], + stream_out: fn _ -> nil end, + stream_out_participations: fn _, _ -> nil end do + {:ok, delete, _} = SideEffects.handle(delete) + user = User.get_cached_by_ap_id(object.data["actor"]) + + assert called(Pleroma.Web.ActivityPub.ActivityPub.stream_out(delete)) + assert called(Pleroma.Web.ActivityPub.ActivityPub.stream_out_participations(object, user)) + end + + object = Object.get_by_id(object.id) + assert object.data["type"] == "Tombstone" + refute Activity.get_by_id(post.id) + refute Activity.get_by_id(favorite.id) + + user = User.get_by_id(user.id) + assert user.note_count == 0 + + object = Object.normalize(op.data["object"], false) + + assert object.data["repliesCount"] == 0 + end + + test "it handles object deletions when the object itself has been pruned", %{ + delete: delete, + post: post, + object: object, + user: user, + op: op + } do + with_mock Pleroma.Web.ActivityPub.ActivityPub, [:passthrough], + stream_out: fn _ -> nil end, + stream_out_participations: fn _, _ -> nil end do + {:ok, delete, _} = SideEffects.handle(delete) + user = User.get_cached_by_ap_id(object.data["actor"]) + + assert called(Pleroma.Web.ActivityPub.ActivityPub.stream_out(delete)) + assert called(Pleroma.Web.ActivityPub.ActivityPub.stream_out_participations(object, user)) + end + + object = Object.get_by_id(object.id) + assert object.data["type"] == "Tombstone" + refute Activity.get_by_id(post.id) + + user = User.get_by_id(user.id) + assert user.note_count == 0 + + object = Object.normalize(op.data["object"], false) + + assert object.data["repliesCount"] == 0 + end + + test "it handles user deletions", %{delete_user: delete, user: user} do + {:ok, _delete, _} = SideEffects.handle(delete) + ObanHelpers.perform_all() + + assert User.get_cached_by_ap_id(user.ap_id).deactivated + end + end + + describe "EmojiReact objects" do + setup do + poster = insert(:user) + user = insert(:user) + + {:ok, post} = CommonAPI.post(poster, %{status: "hey"}) + + {:ok, emoji_react_data, []} = Builder.emoji_react(user, post.object, "👌") + {:ok, emoji_react, _meta} = ActivityPub.persist(emoji_react_data, local: true) + + %{emoji_react: emoji_react, user: user, poster: poster} + end + + test "adds the reaction to the object", %{emoji_react: emoji_react, user: user} do + {:ok, emoji_react, _} = SideEffects.handle(emoji_react) + object = Object.get_by_ap_id(emoji_react.data["object"]) + + assert object.data["reaction_count"] == 1 + assert ["👌", [user.ap_id]] in object.data["reactions"] + end + + test "creates a notification", %{emoji_react: emoji_react, poster: poster} do + {:ok, emoji_react, _} = SideEffects.handle(emoji_react) + assert Repo.get_by(Notification, user_id: poster.id, activity_id: emoji_react.id) + 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) + user = insert(:user) + {: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, undo_data, _meta} = Builder.undo(user, like) + {:ok, like_undo, _meta} = ActivityPub.persist(undo_data, local: true) + + {:ok, undo_data, _meta} = Builder.undo(user, reaction) + {:ok, reaction_undo, _meta} = ActivityPub.persist(undo_data, local: true) + + {:ok, undo_data, _meta} = Builder.undo(user, announce) + {:ok, announce_undo, _meta} = ActivityPub.persist(undo_data, local: true) + + {:ok, undo_data, _meta} = Builder.undo(user, block) + {:ok, block_undo, _meta} = ActivityPub.persist(undo_data, local: true) + + %{ + like_undo: like_undo, + post: post, + like: like, + reaction_undo: reaction_undo, + reaction: reaction, + announce_undo: announce_undo, + announce: announce, + block_undo: block_undo, + block: block, + poster: poster, + user: user + } + end + + test "deletes the original block", %{block_undo: block_undo, block: block} do + {:ok, _block_undo, _} = SideEffects.handle(block_undo) + refute Activity.get_by_id(block.id) + end + + test "unblocks the blocked user", %{block_undo: block_undo, block: block} do + blocker = User.get_by_ap_id(block.data["actor"]) + blocked = User.get_by_ap_id(block.data["object"]) + + {:ok, _block_undo, _} = SideEffects.handle(block_undo) + refute User.blocks?(blocker, blocked) + end + + test "an announce undo removes the announce from the object", %{ + announce_undo: announce_undo, + post: post + } do + {:ok, _announce_undo, _} = SideEffects.handle(announce_undo) + + object = Object.get_by_ap_id(post.data["object"]) + + assert object.data["announcement_count"] == 0 + assert object.data["announcements"] == [] + end + + test "deletes the original announce", %{announce_undo: announce_undo, announce: announce} do + {:ok, _announce_undo, _} = SideEffects.handle(announce_undo) + refute Activity.get_by_id(announce.id) + end + + test "a reaction undo removes the reaction from the object", %{ + reaction_undo: reaction_undo, + post: post + } do + {:ok, _reaction_undo, _} = SideEffects.handle(reaction_undo) + + object = Object.get_by_ap_id(post.data["object"]) + + assert object.data["reaction_count"] == 0 + assert object.data["reactions"] == [] + end + + test "deletes the original reaction", %{reaction_undo: reaction_undo, reaction: reaction} do + {:ok, _reaction_undo, _} = SideEffects.handle(reaction_undo) + refute Activity.get_by_id(reaction.id) + end + + test "a like undo removes the like from the object", %{like_undo: like_undo, post: post} do + {:ok, _like_undo, _} = SideEffects.handle(like_undo) + + object = Object.get_by_ap_id(post.data["object"]) + + assert object.data["like_count"] == 0 + assert object.data["likes"] == [] + end + + test "deletes the original like", %{like_undo: like_undo, like: like} do + {:ok, _like_undo, _} = SideEffects.handle(like_undo) + refute Activity.get_by_id(like.id) + end + end describe "like objects" do setup do poster = insert(:user) user = insert(:user) - {:ok, post} = CommonAPI.post(poster, %{"status" => "hey"}) + {:ok, post} = CommonAPI.post(poster, %{status: "hey"}) {:ok, like_data, _meta} = Builder.like(user, post.object) {:ok, like, _meta} = ActivityPub.persist(like_data, local: true) @@ -39,4 +289,61 @@ 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 "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/delete_handling_test.exs b/test/web/activity_pub/transmogrifier/delete_handling_test.exs new file mode 100644 index 000000000..c9a53918c --- /dev/null +++ b/test/web/activity_pub/transmogrifier/delete_handling_test.exs @@ -0,0 +1,114 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.Transmogrifier.DeleteHandlingTest do + use Oban.Testing, repo: Pleroma.Repo + use Pleroma.DataCase + + alias Pleroma.Activity + alias Pleroma.Object + alias Pleroma.Tests.ObanHelpers + alias Pleroma.User + alias Pleroma.Web.ActivityPub.Transmogrifier + + import Pleroma.Factory + + setup_all do + Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) + :ok + end + + test "it works for incoming deletes" do + activity = insert(:note_activity) + deleting_user = insert(:user) + + data = + File.read!("test/fixtures/mastodon-delete.json") + |> Poison.decode!() + |> Map.put("actor", deleting_user.ap_id) + |> put_in(["object", "id"], activity.data["object"]) + + {:ok, %Activity{actor: actor, local: false, data: %{"id" => id}}} = + Transmogrifier.handle_incoming(data) + + assert id == data["id"] + + # We delete the Create activity because we base our timelines on it. + # This should be changed after we unify objects and activities + refute Activity.get_by_id(activity.id) + assert actor == deleting_user.ap_id + + # Objects are replaced by a tombstone object. + object = Object.normalize(activity.data["object"]) + assert object.data["type"] == "Tombstone" + end + + test "it works for incoming when the object has been pruned" do + activity = insert(:note_activity) + + {:ok, object} = + Object.normalize(activity.data["object"]) + |> Repo.delete() + + Cachex.del(:object_cache, "object:#{object.data["id"]}") + + deleting_user = insert(:user) + + data = + File.read!("test/fixtures/mastodon-delete.json") + |> Poison.decode!() + |> Map.put("actor", deleting_user.ap_id) + |> put_in(["object", "id"], activity.data["object"]) + + {:ok, %Activity{actor: actor, local: false, data: %{"id" => id}}} = + Transmogrifier.handle_incoming(data) + + assert id == data["id"] + + # We delete the Create activity because we base our timelines on it. + # This should be changed after we unify objects and activities + refute Activity.get_by_id(activity.id) + assert actor == deleting_user.ap_id + end + + test "it fails for incoming deletes with spoofed origin" do + activity = insert(:note_activity) + %{ap_id: ap_id} = insert(:user, ap_id: "https://gensokyo.2hu/users/raymoo") + + data = + File.read!("test/fixtures/mastodon-delete.json") + |> Poison.decode!() + |> Map.put("actor", ap_id) + |> put_in(["object", "id"], activity.data["object"]) + + assert match?({:error, _}, Transmogrifier.handle_incoming(data)) + end + + @tag capture_log: true + test "it works for incoming user deletes" do + %{ap_id: ap_id} = insert(:user, ap_id: "http://mastodon.example.org/users/admin") + + data = + File.read!("test/fixtures/mastodon-delete-user.json") + |> Poison.decode!() + + {:ok, _} = Transmogrifier.handle_incoming(data) + ObanHelpers.perform_all() + + assert User.get_cached_by_ap_id(ap_id).deactivated + end + + test "it fails for incoming user deletes with spoofed origin" do + %{ap_id: ap_id} = insert(:user) + + data = + File.read!("test/fixtures/mastodon-delete-user.json") + |> Poison.decode!() + |> Map.put("actor", ap_id) + + assert match?({:error, _}, Transmogrifier.handle_incoming(data)) + + assert User.get_cached_by_ap_id(ap_id) + end +end diff --git a/test/web/activity_pub/transmogrifier/emoji_react_handling_test.exs b/test/web/activity_pub/transmogrifier/emoji_react_handling_test.exs new file mode 100644 index 000000000..0fb056b50 --- /dev/null +++ b/test/web/activity_pub/transmogrifier/emoji_react_handling_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.ActivityPub.Transmogrifier.EmojiReactHandlingTest 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 emoji reactions" do + user = insert(:user) + other_user = insert(:user, local: false) + {:ok, activity} = CommonAPI.post(user, %{status: "hello"}) + + data = + File.read!("test/fixtures/emoji-reaction.json") + |> Poison.decode!() + |> Map.put("object", activity.data["object"]) + |> Map.put("actor", other_user.ap_id) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["actor"] == other_user.ap_id + assert data["type"] == "EmojiReact" + assert data["id"] == "http://mastodon.example.org/users/admin#reactions/2" + assert data["object"] == activity.data["object"] + assert data["content"] == "👌" + + object = Object.get_by_ap_id(data["object"]) + + assert object.data["reaction_count"] == 1 + assert match?([["👌", _]], object.data["reactions"]) + end + + test "it reject invalid emoji reactions" do + user = insert(:user) + other_user = insert(:user, local: false) + {:ok, activity} = CommonAPI.post(user, %{status: "hello"}) + + data = + File.read!("test/fixtures/emoji-reaction-too-long.json") + |> Poison.decode!() + |> Map.put("object", activity.data["object"]) + |> Map.put("actor", other_user.ap_id) + + assert {:error, _} = Transmogrifier.handle_incoming(data) + + data = + File.read!("test/fixtures/emoji-reaction-no-emoji.json") + |> Poison.decode!() + |> Map.put("object", activity.data["object"]) + |> Map.put("actor", other_user.ap_id) + + assert {:error, _} = Transmogrifier.handle_incoming(data) + end +end diff --git a/test/web/activity_pub/transmogrifier/like_handling_test.exs b/test/web/activity_pub/transmogrifier/like_handling_test.exs index 54a5c1dbc..53fe1d550 100644 --- a/test/web/activity_pub/transmogrifier/like_handling_test.exs +++ b/test/web/activity_pub/transmogrifier/like_handling_test.exs @@ -14,7 +14,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.LikeHandlingTest do test "it works for incoming likes" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hello"}) data = File.read!("test/fixtures/mastodon-like.json") @@ -36,7 +36,7 @@ test "it works for incoming likes" do test "it works for incoming misskey likes, turning them into EmojiReacts" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hello"}) data = File.read!("test/fixtures/misskey-like.json") @@ -57,7 +57,7 @@ test "it works for incoming misskey likes, turning them into EmojiReacts" do test "it works for incoming misskey likes that contain unicode emojis, turning them into EmojiReacts" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hello"}) data = File.read!("test/fixtures/misskey-like.json") diff --git a/test/web/activity_pub/transmogrifier/undo_handling_test.exs b/test/web/activity_pub/transmogrifier/undo_handling_test.exs new file mode 100644 index 000000000..01dd6c370 --- /dev/null +++ b/test/web/activity_pub/transmogrifier/undo_handling_test.exs @@ -0,0 +1,185 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.Transmogrifier.UndoHandlingTest do + use Pleroma.DataCase + + alias Pleroma.Activity + alias Pleroma.Object + alias Pleroma.User + alias Pleroma.Web.ActivityPub.Transmogrifier + alias Pleroma.Web.CommonAPI + + import Pleroma.Factory + + test "it works for incoming emoji reaction undos" do + user = insert(:user) + + {:ok, activity} = CommonAPI.post(user, %{status: "hello"}) + {:ok, reaction_activity} = CommonAPI.react_with_emoji(activity.id, user, "👌") + + data = + File.read!("test/fixtures/mastodon-undo-like.json") + |> Poison.decode!() + |> Map.put("object", reaction_activity.data["id"]) + |> Map.put("actor", user.ap_id) + + {:ok, activity} = Transmogrifier.handle_incoming(data) + + assert activity.actor == user.ap_id + assert activity.data["id"] == data["id"] + assert activity.data["type"] == "Undo" + end + + test "it returns an error for incoming unlikes wihout a like activity" do + user = insert(:user) + {:ok, activity} = CommonAPI.post(user, %{status: "leave a like pls"}) + + data = + File.read!("test/fixtures/mastodon-undo-like.json") + |> Poison.decode!() + |> Map.put("object", activity.data["object"]) + + assert Transmogrifier.handle_incoming(data) == :error + end + + test "it works for incoming unlikes with an existing like activity" do + user = insert(:user) + {:ok, activity} = CommonAPI.post(user, %{status: "leave a like pls"}) + + like_data = + File.read!("test/fixtures/mastodon-like.json") + |> Poison.decode!() + |> Map.put("object", activity.data["object"]) + + _liker = insert(:user, ap_id: like_data["actor"], local: false) + + {:ok, %Activity{data: like_data, local: false}} = Transmogrifier.handle_incoming(like_data) + + data = + File.read!("test/fixtures/mastodon-undo-like.json") + |> Poison.decode!() + |> Map.put("object", like_data) + |> Map.put("actor", like_data["actor"]) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["actor"] == "http://mastodon.example.org/users/admin" + assert data["type"] == "Undo" + assert data["id"] == "http://mastodon.example.org/users/admin#likes/2/undo" + assert data["object"] == "http://mastodon.example.org/users/admin#likes/2" + + note = Object.get_by_ap_id(like_data["object"]) + assert note.data["like_count"] == 0 + assert note.data["likes"] == [] + end + + test "it works for incoming unlikes with an existing like activity and a compact object" do + user = insert(:user) + {:ok, activity} = CommonAPI.post(user, %{status: "leave a like pls"}) + + like_data = + File.read!("test/fixtures/mastodon-like.json") + |> Poison.decode!() + |> Map.put("object", activity.data["object"]) + + _liker = insert(:user, ap_id: like_data["actor"], local: false) + + {:ok, %Activity{data: like_data, local: false}} = Transmogrifier.handle_incoming(like_data) + + data = + File.read!("test/fixtures/mastodon-undo-like.json") + |> Poison.decode!() + |> Map.put("object", like_data["id"]) + |> Map.put("actor", like_data["actor"]) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["actor"] == "http://mastodon.example.org/users/admin" + assert data["type"] == "Undo" + assert data["id"] == "http://mastodon.example.org/users/admin#likes/2/undo" + assert data["object"] == "http://mastodon.example.org/users/admin#likes/2" + end + + test "it works for incoming unannounces with an existing notice" do + user = insert(:user) + {:ok, activity} = CommonAPI.post(user, %{status: "hey"}) + + announce_data = + File.read!("test/fixtures/mastodon-announce.json") + |> Poison.decode!() + |> Map.put("object", activity.data["object"]) + + _announcer = insert(:user, ap_id: announce_data["actor"], local: false) + + {:ok, %Activity{data: announce_data, local: false}} = + Transmogrifier.handle_incoming(announce_data) + + data = + File.read!("test/fixtures/mastodon-undo-announce.json") + |> Poison.decode!() + |> Map.put("object", announce_data) + |> Map.put("actor", announce_data["actor"]) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["type"] == "Undo" + + assert data["object"] == + "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" + end + + test "it works for incomming unfollows with an existing follow" do + user = insert(:user) + + follow_data = + File.read!("test/fixtures/mastodon-follow-activity.json") + |> Poison.decode!() + |> Map.put("object", user.ap_id) + + _follower = insert(:user, ap_id: follow_data["actor"], local: false) + + {:ok, %Activity{data: _, local: false}} = Transmogrifier.handle_incoming(follow_data) + + data = + File.read!("test/fixtures/mastodon-unfollow-activity.json") + |> Poison.decode!() + |> Map.put("object", follow_data) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["type"] == "Undo" + assert data["object"]["type"] == "Follow" + assert data["object"]["object"] == user.ap_id + assert data["actor"] == "http://mastodon.example.org/users/admin" + + refute User.following?(User.get_cached_by_ap_id(data["actor"]), user) + end + + test "it works for incoming unblocks with an existing block" do + user = insert(:user) + + block_data = + File.read!("test/fixtures/mastodon-block-activity.json") + |> Poison.decode!() + |> Map.put("object", user.ap_id) + + _blocker = insert(:user, ap_id: block_data["actor"], local: false) + + {:ok, %Activity{data: _, local: false}} = Transmogrifier.handle_incoming(block_data) + + data = + File.read!("test/fixtures/mastodon-unblock-activity.json") + |> Poison.decode!() + |> Map.put("object", block_data) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + assert data["type"] == "Undo" + assert data["object"] == block_data["id"] + + blocker = User.get_cached_by_ap_id(data["actor"]) + + refute User.blocks?(blocker, user) + end +end diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 23efa4be6..94d8552e8 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) @@ -212,8 +269,8 @@ test "it rewrites Note votes to Answers and increments vote counters on question {:ok, activity} = CommonAPI.post(user, %{ - "status" => "suya...", - "poll" => %{"options" => ["suya", "suya.", "suya.."], "expires_in" => 10} + status: "suya...", + poll: %{options: ["suya", "suya.", "suya.."], expires_in: 10} }) object = Object.normalize(activity) @@ -260,272 +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 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 emoji reactions" do - user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) - - data = - File.read!("test/fixtures/emoji-reaction.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"] == "EmojiReact" - assert data["id"] == "http://mastodon.example.org/users/admin#reactions/2" - assert data["object"] == activity.data["object"] - assert data["content"] == "👌" - end - - test "it reject invalid emoji reactions" do - user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) - - data = - File.read!("test/fixtures/emoji-reaction-too-long.json") - |> Poison.decode!() - |> Map.put("object", activity.data["object"]) - - assert :error = Transmogrifier.handle_incoming(data) - - data = - File.read!("test/fixtures/emoji-reaction-no-emoji.json") - |> Poison.decode!() - |> Map.put("object", activity.data["object"]) - - assert :error = Transmogrifier.handle_incoming(data) - end - - test "it works for incoming emoji reaction undos" do - user = insert(:user) - - {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) - {:ok, reaction_activity, _object} = CommonAPI.react_with_emoji(activity.id, user, "👌") - - data = - File.read!("test/fixtures/mastodon-undo-like.json") - |> Poison.decode!() - |> Map.put("object", reaction_activity.data["id"]) - |> Map.put("actor", user.ap_id) - - {:ok, activity} = Transmogrifier.handle_incoming(data) - - assert activity.actor == user.ap_id - assert activity.data["id"] == data["id"] - assert activity.data["type"] == "Undo" - end - - test "it returns an error for incoming unlikes wihout a like activity" do - user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "leave a like pls"}) - - data = - File.read!("test/fixtures/mastodon-undo-like.json") - |> Poison.decode!() - |> Map.put("object", activity.data["object"]) - - assert Transmogrifier.handle_incoming(data) == :error - end - - test "it works for incoming unlikes with an existing like activity" do - user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "leave a like pls"}) - - like_data = - File.read!("test/fixtures/mastodon-like.json") - |> Poison.decode!() - |> Map.put("object", activity.data["object"]) - - {:ok, %Activity{data: like_data, local: false}} = Transmogrifier.handle_incoming(like_data) - - data = - File.read!("test/fixtures/mastodon-undo-like.json") - |> Poison.decode!() - |> Map.put("object", like_data) - |> Map.put("actor", like_data["actor"]) - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - - assert data["actor"] == "http://mastodon.example.org/users/admin" - assert data["type"] == "Undo" - assert data["id"] == "http://mastodon.example.org/users/admin#likes/2/undo" - assert data["object"]["id"] == "http://mastodon.example.org/users/admin#likes/2" - end - - test "it works for incoming unlikes with an existing like activity and a compact object" do - user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "leave a like pls"}) - - like_data = - File.read!("test/fixtures/mastodon-like.json") - |> Poison.decode!() - |> Map.put("object", activity.data["object"]) - - {:ok, %Activity{data: like_data, local: false}} = Transmogrifier.handle_incoming(like_data) - - data = - File.read!("test/fixtures/mastodon-undo-like.json") - |> Poison.decode!() - |> Map.put("object", like_data["id"]) - |> Map.put("actor", like_data["actor"]) - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - - assert data["actor"] == "http://mastodon.example.org/users/admin" - assert data["type"] == "Undo" - assert data["id"] == "http://mastodon.example.org/users/admin#likes/2/undo" - assert data["object"]["id"] == "http://mastodon.example.org/users/admin#likes/2" - 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) @@ -598,8 +389,8 @@ test "it strips internal likes" do test "it strips internal reactions" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "#cofe"}) - {:ok, _, _} = CommonAPI.react_with_emoji(activity.id, user, "📢") + {:ok, activity} = CommonAPI.post(user, %{status: "#cofe"}) + {:ok, _} = CommonAPI.react_with_emoji(activity.id, user, "📢") %{object: object} = Activity.get_by_id_with_object(activity.id) assert Map.has_key?(object.data, "reactions") @@ -766,113 +557,6 @@ test "it works for incoming update activities which lock the account" do assert user.locked == true end - test "it works for incoming deletes" do - activity = insert(:note_activity) - deleting_user = insert(:user) - - data = - File.read!("test/fixtures/mastodon-delete.json") - |> Poison.decode!() - - object = - data["object"] - |> Map.put("id", activity.data["object"]) - - data = - data - |> Map.put("object", object) - |> Map.put("actor", deleting_user.ap_id) - - {:ok, %Activity{actor: actor, local: false, data: %{"id" => id}}} = - Transmogrifier.handle_incoming(data) - - assert id == data["id"] - refute Activity.get_by_id(activity.id) - assert actor == deleting_user.ap_id - end - - test "it fails for incoming deletes with spoofed origin" do - activity = insert(:note_activity) - - data = - File.read!("test/fixtures/mastodon-delete.json") - |> Poison.decode!() - - object = - data["object"] - |> Map.put("id", activity.data["object"]) - - data = - data - |> Map.put("object", object) - - assert capture_log(fn -> - :error = Transmogrifier.handle_incoming(data) - end) =~ - "[error] Could not decode user at fetch http://mastodon.example.org/users/gargron, {:error, :nxdomain}" - - assert Activity.get_by_id(activity.id) - end - - @tag capture_log: true - test "it works for incoming user deletes" do - %{ap_id: ap_id} = - insert(:user, ap_id: "http://mastodon.example.org/users/admin", local: false) - - data = - File.read!("test/fixtures/mastodon-delete-user.json") - |> Poison.decode!() - - {:ok, _} = Transmogrifier.handle_incoming(data) - ObanHelpers.perform_all() - - refute User.get_cached_by_ap_id(ap_id) - end - - test "it fails for incoming user deletes with spoofed origin" do - %{ap_id: ap_id} = insert(:user) - - data = - File.read!("test/fixtures/mastodon-delete-user.json") - |> Poison.decode!() - |> Map.put("actor", ap_id) - - assert capture_log(fn -> - assert :error == Transmogrifier.handle_incoming(data) - end) =~ "Object containment failed" - - assert User.get_cached_by_ap_id(ap_id) - end - - test "it works for incoming unannounces with an existing notice" do - user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey"}) - - announce_data = - File.read!("test/fixtures/mastodon-announce.json") - |> Poison.decode!() - |> Map.put("object", activity.data["object"]) - - {:ok, %Activity{data: announce_data, local: false}} = - Transmogrifier.handle_incoming(announce_data) - - data = - File.read!("test/fixtures/mastodon-undo-announce.json") - |> Poison.decode!() - |> Map.put("object", announce_data) - |> Map.put("actor", announce_data["actor"]) - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - - assert data["type"] == "Undo" - assert object_data = data["object"] - assert object_data["type"] == "Announce" - assert object_data["object"] == activity.data["object"] - - assert object_data["id"] == - "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" - end - test "it works for incomming unfollows with an existing follow" do user = insert(:user) @@ -967,32 +651,6 @@ test "incoming blocks successfully tear down any follow relationship" do refute User.following?(blocked, blocker) end - test "it works for incoming unblocks with an existing block" do - user = insert(:user) - - block_data = - File.read!("test/fixtures/mastodon-block-activity.json") - |> Poison.decode!() - |> Map.put("object", user.ap_id) - - {:ok, %Activity{data: _, local: false}} = Transmogrifier.handle_incoming(block_data) - - data = - File.read!("test/fixtures/mastodon-unblock-activity.json") - |> Poison.decode!() - |> Map.put("object", block_data) - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - assert data["type"] == "Undo" - assert data["object"]["type"] == "Block" - assert data["object"]["object"] == user.ap_id - assert data["actor"] == "http://mastodon.example.org/users/admin" - - blocker = User.get_cached_by_ap_id(data["actor"]) - - refute User.blocks?(blocker, user) - end - test "it works for incoming accepts which were pre-accepted" do follower = insert(:user) followed = insert(:user) @@ -1066,6 +724,12 @@ test "it works for incoming accepts which are referenced by IRI only" do follower = User.get_cached_by_id(follower.id) assert User.following?(follower, followed) == true + + follower = User.get_by_id(follower.id) + assert follower.following_count == 1 + + followed = User.get_by_id(followed.id) + assert followed.follower_count == 1 end test "it fails for incoming accepts which cannot be correlated" do @@ -1223,7 +887,7 @@ test "it accepts Flag activities" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "test post"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test post"}) object = Object.normalize(activity) note_obj = %{ @@ -1367,13 +1031,13 @@ test "does NOT schedule background fetching of `replies` beyond max thread depth setup do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "post1"}) + {:ok, activity} = CommonAPI.post(user, %{status: "post1"}) {:ok, reply1} = - CommonAPI.post(user, %{"status" => "reply1", "in_reply_to_status_id" => activity.id}) + CommonAPI.post(user, %{status: "reply1", in_reply_to_status_id: activity.id}) {:ok, reply2} = - CommonAPI.post(user, %{"status" => "reply2", "in_reply_to_status_id" => activity.id}) + CommonAPI.post(user, %{status: "reply2", in_reply_to_status_id: activity.id}) replies_uris = Enum.map([reply1, reply2], fn a -> a.object.data["id"] end) @@ -1413,9 +1077,9 @@ test "does NOT schedule background fetching of `replies` beyond max thread depth test "it inlines private announced objects" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey", "visibility" => "private"}) + {: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) @@ -1428,31 +1092,36 @@ test "it turns mentions into tags" do other_user = insert(:user) {:ok, activity} = - CommonAPI.post(user, %{"status" => "hey, @#{other_user.nickname}, how are ya? #2hu"}) + 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 user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "#nsfw hey"}) + {:ok, activity} = CommonAPI.post(user, %{status: "#nsfw hey"}) {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) assert modified["object"]["sensitive"] @@ -1461,7 +1130,7 @@ test "it adds the sensitive property" do test "it adds the json-ld context and the conversation property" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey"}) {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) assert modified["@context"] == @@ -1473,7 +1142,7 @@ test "it adds the json-ld context and the conversation property" do test "it sets the 'attributedTo' property to the actor of the object if it doesn't have one" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey"}) {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) assert modified["object"]["actor"] == modified["object"]["attributedTo"] @@ -1482,7 +1151,7 @@ test "it sets the 'attributedTo' property to the actor of the object if it doesn test "it strips internal hashtag data" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "#2hu"}) + {:ok, activity} = CommonAPI.post(user, %{status: "#2hu"}) expected_tag = %{ "href" => Pleroma.Web.Endpoint.url() <> "/tags/2hu", @@ -1498,7 +1167,7 @@ test "it strips internal hashtag data" do test "it strips internal fields" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "#2hu :firefox:"}) + {:ok, activity} = CommonAPI.post(user, %{status: "#2hu :firefox:"}) {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) @@ -1530,14 +1199,13 @@ test "the directMessage flag is present" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "2hu :moominmamma:"}) + {:ok, activity} = CommonAPI.post(user, %{status: "2hu :moominmamma:"}) {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) assert modified["directMessage"] == false - {:ok, activity} = - CommonAPI.post(user, %{"status" => "@#{other_user.nickname} :moominmamma:"}) + {:ok, activity} = CommonAPI.post(user, %{status: "@#{other_user.nickname} :moominmamma:"}) {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) @@ -1545,8 +1213,8 @@ test "the directMessage flag is present" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "@#{other_user.nickname} :moominmamma:", - "visibility" => "direct" + status: "@#{other_user.nickname} :moominmamma:", + visibility: "direct" }) {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) @@ -1558,8 +1226,7 @@ test "it strips BCC field" do user = insert(:user) {:ok, list} = Pleroma.List.create("foo", user) - {:ok, activity} = - CommonAPI.post(user, %{"status" => "foobar", "visibility" => "list:#{list.id}"}) + {:ok, activity} = CommonAPI.post(user, %{status: "foobar", visibility: "list:#{list.id}"}) {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) @@ -1594,8 +1261,8 @@ test "it upgrades a user to activitypub" do user_two = insert(:user) Pleroma.FollowingRelationship.follow(user_two, user, :follow_accept) - {:ok, activity} = CommonAPI.post(user, %{"status" => "test"}) - {:ok, unrelated_activity} = CommonAPI.post(user_two, %{"status" => "test"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test"}) + {:ok, unrelated_activity} = CommonAPI.post(user_two, %{status: "test"}) assert "http://localhost:4001/users/rye@niu.moe/followers" in activity.recipients user = User.get_cached_by_id(user.id) @@ -1667,7 +1334,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 @@ -1682,7 +1349,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 @@ -1697,7 +1364,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 @@ -1761,8 +1428,8 @@ test "Rewrites Answers to Notes" do {:ok, poll_activity} = CommonAPI.post(user, %{ - "status" => "suya...", - "poll" => %{"options" => ["suya", "suya.", "suya.."], "expires_in" => 10} + status: "suya...", + poll: %{options: ["suya", "suya.", "suya.."], expires_in: 10} }) poll_object = Object.normalize(poll_activity) @@ -2105,28 +1772,27 @@ test "returns unmodified object if activity doesn't have self-replies" do test "sets `replies` collection with a limited number of self-replies" do [user, another_user] = insert_list(2, :user) - {:ok, %{id: id1} = activity} = CommonAPI.post(user, %{"status" => "1"}) + {:ok, %{id: id1} = activity} = CommonAPI.post(user, %{status: "1"}) {:ok, %{id: id2} = self_reply1} = - CommonAPI.post(user, %{"status" => "self-reply 1", "in_reply_to_status_id" => id1}) + CommonAPI.post(user, %{status: "self-reply 1", in_reply_to_status_id: id1}) {:ok, self_reply2} = - CommonAPI.post(user, %{"status" => "self-reply 2", "in_reply_to_status_id" => id1}) + CommonAPI.post(user, %{status: "self-reply 2", in_reply_to_status_id: id1}) # Assuming to _not_ be present in `replies` due to :note_replies_output_limit is set to 2 - {:ok, _} = - CommonAPI.post(user, %{"status" => "self-reply 3", "in_reply_to_status_id" => id1}) + {:ok, _} = CommonAPI.post(user, %{status: "self-reply 3", in_reply_to_status_id: id1}) {:ok, _} = CommonAPI.post(user, %{ - "status" => "self-reply to self-reply", - "in_reply_to_status_id" => id2 + status: "self-reply to self-reply", + in_reply_to_status_id: id2 }) {:ok, _} = CommonAPI.post(another_user, %{ - "status" => "another user's reply", - "in_reply_to_status_id" => id1 + status: "another user's reply", + in_reply_to_status_id: id1 }) object = Object.normalize(activity) diff --git a/test/web/activity_pub/utils_test.exs b/test/web/activity_pub/utils_test.exs index b0bfed917..15f03f193 100644 --- a/test/web/activity_pub/utils_test.exs +++ b/test/web/activity_pub/utils_test.exs @@ -102,34 +102,6 @@ test "works with an object has tags as map" do end end - describe "make_unlike_data/3" do - test "returns data for unlike activity" do - user = insert(:user) - like_activity = insert(:like_activity, data_attrs: %{"context" => "test context"}) - - object = Object.normalize(like_activity.data["object"]) - - assert Utils.make_unlike_data(user, like_activity, nil) == %{ - "type" => "Undo", - "actor" => user.ap_id, - "object" => like_activity.data, - "to" => [user.follower_address, object.data["actor"]], - "cc" => [Pleroma.Constants.as_public()], - "context" => like_activity.data["context"] - } - - assert Utils.make_unlike_data(user, like_activity, "9mJEZK0tky1w2xD2vY") == %{ - "type" => "Undo", - "actor" => user.ap_id, - "object" => like_activity.data, - "to" => [user.follower_address, object.data["actor"]], - "cc" => [Pleroma.Constants.as_public()], - "context" => like_activity.data["context"], - "id" => "9mJEZK0tky1w2xD2vY" - } - end - end - describe "make_like_data" do setup do user = insert(:user) @@ -148,7 +120,7 @@ test "addresses actor's follower address if the activity is public", %{ {:ok, activity} = CommonAPI.post(user, %{ - "status" => + status: "hey @#{other_user.nickname}, @#{third_user.nickname} how about beering together this weekend?" }) @@ -167,8 +139,8 @@ test "does not adress actor's follower address if the activity is not public", % {:ok, activity} = CommonAPI.post(user, %{ - "status" => "@#{other_user.nickname} @#{third_user.nickname} bought a new swimsuit!", - "visibility" => "private" + status: "@#{other_user.nickname} @#{third_user.nickname} bought a new swimsuit!", + visibility: "private" }) %{"to" => to, "cc" => cc} = Utils.make_like_data(other_user, activity, nil) @@ -196,11 +168,11 @@ test "fetches existing votes" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "How do I pronounce LaTeX?", - "poll" => %{ - "options" => ["laytekh", "lahtekh", "latex"], - "expires_in" => 20, - "multiple" => true + status: "How do I pronounce LaTeX?", + poll: %{ + options: ["laytekh", "lahtekh", "latex"], + expires_in: 20, + multiple: true } }) @@ -215,10 +187,10 @@ test "fetches only Create activities" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "Are we living in a society?", - "poll" => %{ - "options" => ["yes", "no"], - "expires_in" => 20 + status: "Are we living in a society?", + poll: %{ + options: ["yes", "no"], + expires_in: 20 } }) @@ -362,7 +334,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 @@ -497,7 +469,7 @@ test "returns empty map when params is invalid" do test "returns map with Flag object" do reporter = insert(:user) target_account = insert(:user) - {:ok, activity} = CommonAPI.post(target_account, %{"status" => "foobar"}) + {:ok, activity} = CommonAPI.post(target_account, %{status: "foobar"}) context = Utils.generate_context_id() content = "foobar" diff --git a/test/web/activity_pub/views/object_view_test.exs b/test/web/activity_pub/views/object_view_test.exs index 6c006206b..f0389845d 100644 --- a/test/web/activity_pub/views/object_view_test.exs +++ b/test/web/activity_pub/views/object_view_test.exs @@ -44,7 +44,7 @@ test "renders `replies` collection for a note activity" do activity = insert(:note_activity, user: user) {:ok, self_reply1} = - CommonAPI.post(user, %{"status" => "self-reply 1", "in_reply_to_status_id" => activity.id}) + CommonAPI.post(user, %{status: "self-reply 1", in_reply_to_status_id: activity.id}) replies_uris = [self_reply1.object.data["id"]] result = ObjectView.render("object.json", %{object: refresh_record(activity)}) @@ -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 8d00893a5..20b0f223c 100644 --- a/test/web/activity_pub/views/user_view_test.exs +++ b/test/web/activity_pub/views/user_view_test.exs @@ -164,7 +164,7 @@ test "activity collection page aginates correctly" do posts = for i <- 0..25 do - {:ok, activity} = CommonAPI.post(user, %{"status" => "post #{i}"}) + {:ok, activity} = CommonAPI.post(user, %{status: "post #{i}"}) activity end diff --git a/test/web/activity_pub/visibilty_test.exs b/test/web/activity_pub/visibilty_test.exs index 5b91630d4..8e9354c65 100644 --- a/test/web/activity_pub/visibilty_test.exs +++ b/test/web/activity_pub/visibilty_test.exs @@ -21,21 +21,21 @@ defmodule Pleroma.Web.ActivityPub.VisibilityTest do Pleroma.List.follow(list, unrelated) {:ok, public} = - CommonAPI.post(user, %{"status" => "@#{mentioned.nickname}", "visibility" => "public"}) + CommonAPI.post(user, %{status: "@#{mentioned.nickname}", visibility: "public"}) {:ok, private} = - CommonAPI.post(user, %{"status" => "@#{mentioned.nickname}", "visibility" => "private"}) + CommonAPI.post(user, %{status: "@#{mentioned.nickname}", visibility: "private"}) {:ok, direct} = - CommonAPI.post(user, %{"status" => "@#{mentioned.nickname}", "visibility" => "direct"}) + CommonAPI.post(user, %{status: "@#{mentioned.nickname}", visibility: "direct"}) {:ok, unlisted} = - CommonAPI.post(user, %{"status" => "@#{mentioned.nickname}", "visibility" => "unlisted"}) + CommonAPI.post(user, %{status: "@#{mentioned.nickname}", visibility: "unlisted"}) {:ok, list} = CommonAPI.post(user, %{ - "status" => "@#{mentioned.nickname}", - "visibility" => "list:#{list.id}" + status: "@#{mentioned.nickname}", + visibility: "list:#{list.id}" }) %{ diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/controllers/admin_api_controller_test.exs similarity index 92% rename from test/web/admin_api/admin_api_controller_test.exs rename to test/web/admin_api/controllers/admin_api_controller_test.exs index 1862a9589..ead840186 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/controllers/admin_api_controller_test.exs @@ -6,19 +6,22 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do use Pleroma.Web.ConnCase use Oban.Testing, repo: Pleroma.Repo - import Pleroma.Factory 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 @@ -145,18 +148,28 @@ test "GET /api/pleroma/admin/users/:nickname requires " <> describe "DELETE /api/pleroma/admin/users" do test "single user", %{admin: admin, conn: conn} do user = insert(:user) + clear_config([:instance, :federating], true) - conn = - conn - |> put_req_header("accept", "application/json") - |> delete("/api/pleroma/admin/users?nickname=#{user.nickname}") + 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}") - log_entry = Repo.one(ModerationLog) + ObanHelpers.perform_all() - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} deleted users: @#{user.nickname}" + assert User.get_by_nickname(user.nickname).deactivated - assert json_response(conn, 200) == user.nickname + 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 @@ -338,7 +351,7 @@ test "when the user doesn't exist", %{conn: conn} do conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}") - assert "Not found" == json_response(conn, 404) + assert %{"error" => "Not found"} == json_response(conn, 404) end end @@ -671,7 +684,10 @@ test "it returns 500 if `invites_enabled` is not enabled", %{conn: conn} do 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." + %{ + "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 @@ -681,7 +697,10 @@ test "it returns 500 if `registrations_open` is enabled", %{conn: conn} do 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." + %{ + "error" => + "To send invites you need to set the `registrations_open` option to false." + } end end @@ -737,6 +756,39 @@ test "renders users array for the first page", %{conn: conn, admin: admin} do } 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) @@ -1234,6 +1286,38 @@ test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation", %{admin: admi "@#{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 "POST /api/pleroma/admin/users/invite_token" do test "without options", %{conn: conn} do conn = post(conn, "/api/pleroma/admin/users/invite_token") @@ -1336,7 +1420,7 @@ test "with token", %{conn: conn} do 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" + assert json_response(conn, :not_found) == %{"error" => "Not found"} end end @@ -1363,7 +1447,7 @@ test "returns report by its id", %{conn: conn} do 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" + assert json_response(conn, :not_found) == %{"error" => "Not found"} end end @@ -1620,96 +1704,6 @@ test "returns 403 when requested by anonymous" do 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) @@ -1718,7 +1712,9 @@ test "when configuration from database is off", %{conn: conn} do conn = get(conn, "/api/pleroma/admin/config") assert json_response(conn, 400) == - "To use this endpoint you need to enable configuration from database." + %{ + "error" => "To use this endpoint you need to enable configuration from database." + } end test "with settings only in db", %{conn: conn} do @@ -1840,7 +1836,7 @@ 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." + %{"error" => "To use this endpoint you need to enable configuration from database."} end describe "POST /api/pleroma/admin/config" do @@ -2413,6 +2409,7 @@ test "common config example", %{conn: conn} do %{"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"]}, @@ -2436,6 +2433,7 @@ test "common config example", %{conn: conn} do %{"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"]}, @@ -2448,6 +2446,7 @@ test "common config example", %{conn: conn} do ":seconds_valid", ":path", ":key1", + ":partial_chain", ":regex1", ":regex2", ":regex3", @@ -2766,26 +2765,25 @@ test "proxy tuple localhost", %{conn: conn} do group: ":pleroma", key: ":http", value: [ - %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "localhost", 1234]}]}, - %{"tuple" => [":send_user_agent", false]} + %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "localhost", 1234]}]} ] } ] }) - assert json_response(conn, 200) == %{ + assert %{ "configs" => [ %{ "group" => ":pleroma", "key" => ":http", - "value" => [ - %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "localhost", 1234]}]}, - %{"tuple" => [":send_user_agent", false]} - ], - "db" => [":proxy_url", ":send_user_agent"] + "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 @@ -2796,26 +2794,25 @@ test "proxy tuple domain", %{conn: conn} do group: ":pleroma", key: ":http", value: [ - %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "domain.com", 1234]}]}, - %{"tuple" => [":send_user_agent", false]} + %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "domain.com", 1234]}]} ] } ] }) - assert json_response(conn, 200) == %{ + assert %{ "configs" => [ %{ "group" => ":pleroma", "key" => ":http", - "value" => [ - %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "domain.com", 1234]}]}, - %{"tuple" => [":send_user_agent", false]} - ], - "db" => [":proxy_url", ":send_user_agent"] + "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 @@ -2826,26 +2823,53 @@ test "proxy tuple ip", %{conn: conn} do group: ":pleroma", key: ":http", value: [ - %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "127.0.0.1", 1234]}]}, - %{"tuple" => [":send_user_agent", false]} + %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "127.0.0.1", 1234]}]} ] } ] }) - assert json_response(conn, 200) == %{ + assert %{ "configs" => [ %{ "group" => ":pleroma", "key" => ":http", - "value" => [ - %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "127.0.0.1", 1234]}]}, - %{"tuple" => [":send_user_agent", false]} - ], - "db" => [":proxy_url", ":send_user_agent"] + "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 + + @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} + ]) + + 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 @@ -2875,56 +2899,6 @@ test "need_reboot flag", %{conn: conn} do 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) @@ -2953,11 +2927,9 @@ test "renders user's statuses with a limit", %{conn: conn, user: user} do 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, _private_status} = CommonAPI.post(user, %{status: "private", visibility: "private"}) - {:ok, _public_status} = - CommonAPI.post(user, %{"status" => "public", "visibility" => "public"}) + {:ok, _public_status} = CommonAPI.post(user, %{status: "public", visibility: "public"}) conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/statuses") @@ -2965,11 +2937,9 @@ test "doesn't return private statuses by default", %{conn: conn, user: user} do end test "returns private statuses with godmode on", %{conn: conn, user: user} do - {:ok, _private_status} = - CommonAPI.post(user, %{"status" => "private", "visibility" => "private"}) + {:ok, _private_status} = CommonAPI.post(user, %{status: "private", visibility: "private"}) - {:ok, _public_status} = - CommonAPI.post(user, %{"status" => "public", "visibility" => "public"}) + {:ok, _public_status} = CommonAPI.post(user, %{status: "public", visibility: "public"}) conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/statuses?godmode=true") @@ -2978,8 +2948,8 @@ test "returns private statuses with godmode on", %{conn: conn, user: user} do 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) + {: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 @@ -3221,8 +3191,12 @@ test "returns 403 if requested by a non-admin" do end describe "PATCH /users/:nickname/credentials" do - test "changes password and email", %{conn: conn, admin: admin} 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 = @@ -3252,9 +3226,7 @@ test "changes password and email", %{conn: conn, admin: admin} do "@#{admin.nickname} forced password reset for users: @#{user.nickname}" end - test "returns 403 if requested by a non-admin" do - user = insert(:user) - + test "returns 403 if requested by a non-admin", %{user: user} do conn = build_conn() |> assign(:user, user) @@ -3266,6 +3238,31 @@ test "returns 403 if requested by a non-admin" do 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(200) == %{"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(200) == %{"error" => "Unable to update user."} + end end describe "PATCH /users/:nickname/force_password_reset" do @@ -3484,28 +3481,63 @@ test "it deletes the note", %{conn: conn, report_id: report_id} do end end - test "GET /api/pleroma/admin/config/descriptions", %{conn: conn} do - admin = insert(:user, is_admin: true) + 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") + conn = + assign(conn, :user, admin) + |> get("/api/pleroma/admin/config/descriptions") - assert [child | _others] = json_response(conn, 200) + assert [child | _others] = json_response(conn, 200) - assert child["children"] - assert child["key"] - assert String.starts_with?(child["group"], ":") - assert child["description"] + 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"}) + CommonAPI.post(user, %{visibility: "public", status: "hey"}) + CommonAPI.post(user, %{visibility: "unlisted", status: "hey"}) + CommonAPI.post(user, %{visibility: "unlisted", status: "hey"}) response = conn @@ -3526,7 +3558,7 @@ test "errors", %{conn: conn} do end test "success", %{conn: conn} do - base_url = Pleroma.Web.base_url() + base_url = Web.base_url() app_name = "Trusted app" response = @@ -3547,7 +3579,7 @@ test "success", %{conn: conn} do end test "with trusted", %{conn: conn} do - base_url = Pleroma.Web.base_url() + base_url = Web.base_url() app_name = "Trusted app" response = 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..124d8dc2e --- /dev/null +++ b/test/web/admin_api/controllers/status_controller_test.exs @@ -0,0 +1,194 @@ +# 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 + 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/admin_api/views/report_view_test.exs b/test/web/admin_api/views/report_view_test.exs index 8cfa1dcfa..f00b0afb2 100644 --- a/test/web/admin_api/views/report_view_test.exs +++ b/test/web/admin_api/views/report_view_test.exs @@ -45,7 +45,7 @@ test "renders a report" do test "includes reported statuses" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "toot"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "toot"}) {:ok, report_activity} = CommonAPI.report(user, %{account_id: other_user.id, status_ids: [activity.id]}) 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/basic_auth_test.exs b/test/web/auth/basic_auth_test.exs index 64f8a6863..bf6e3d2fc 100644 --- a/test/web/auth/basic_auth_test.exs +++ b/test/web/auth/basic_auth_test.exs @@ -11,7 +11,7 @@ test "with HTTP Basic Auth used, grants access to OAuth scope-restricted endpoin conn: conn } do user = insert(:user) - assert Comeonin.Pbkdf2.checkpw("test", user.password_hash) + assert Pbkdf2.verify_pass("test", user.password_hash) basic_auth_contents = (URI.encode_www_form(user.nickname) <> ":" <> URI.encode_www_form("test")) diff --git a/test/web/auth/pleroma_authenticator_test.exs b/test/web/auth/pleroma_authenticator_test.exs new file mode 100644 index 000000000..1ba0dfecc --- /dev/null +++ b/test/web/auth/pleroma_authenticator_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.Auth.PleromaAuthenticatorTest do + use Pleroma.Web.ConnCase + + alias Pleroma.Web.Auth.PleromaAuthenticator + import Pleroma.Factory + + setup do + password = "testpassword" + name = "AgentSmith" + user = insert(:user, nickname: name, password_hash: Pbkdf2.hash_pwd_salt(password)) + {:ok, [user: user, name: name, password: password]} + end + + 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, 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 + params = %{"authorization" => %{"name" => name, "password" => "password"}} + res = PleromaAuthenticator.get_user(%Plug.Conn{params: params}) + + assert {:error, {:checkpw, false}} == res + end + + test "get_user/grant_type_password", %{user: user, name: name, password: password} do + params = %{"grant_type" => "password", "username" => name, "password" => password} + res = PleromaAuthenticator.get_user(%Plug.Conn{params: params}) + + assert {:ok, user} == res + end + + test "error credintails" do + res = PleromaAuthenticator.get_user(%Plug.Conn{params: %{}}) + assert {:error, :invalid_credentials} == res + end +end diff --git a/test/web/auth/totp_authenticator_test.exs b/test/web/auth/totp_authenticator_test.exs new file mode 100644 index 000000000..84d4cd840 --- /dev/null +++ b/test/web/auth/totp_authenticator_test.exs @@ -0,0 +1,51 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Auth.TOTPAuthenticatorTest do + use Pleroma.Web.ConnCase + + alias Pleroma.MFA + alias Pleroma.MFA.BackupCodes + alias Pleroma.MFA.TOTP + alias Pleroma.Web.Auth.TOTPAuthenticator + + import Pleroma.Factory + + test "verify token" do + otp_secret = TOTP.generate_secret() + otp_token = TOTP.generate_token(otp_secret) + + user = + insert(:user, + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + totp: %MFA.Settings.TOTP{secret: otp_secret, confirmed: true} + } + ) + + assert TOTPAuthenticator.verify(otp_token, user) == {:ok, :pass} + assert TOTPAuthenticator.verify(nil, user) == {:error, :invalid_token} + assert TOTPAuthenticator.verify("", user) == {:error, :invalid_token} + end + + test "checks backup codes" do + [code | _] = backup_codes = BackupCodes.generate() + + hashed_codes = + backup_codes + |> Enum.map(&Pbkdf2.hash_pwd_salt(&1)) + + user = + insert(:user, + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + backup_codes: hashed_codes, + totp: %MFA.Settings.TOTP{secret: "otp_secret", confirmed: true} + } + ) + + assert TOTPAuthenticator.verify_recovery_code(user, code) == {:ok, :pass} + refute TOTPAuthenticator.verify_recovery_code(code, refresh_record(user)) == {:ok, :pass} + end +end diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index bc0c1a791..2291f76dd 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -9,11 +9,13 @@ defmodule Pleroma.Web.CommonAPITest do alias Pleroma.Object alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.ActivityPub.Transmogrifier alias Pleroma.Web.ActivityPub.Visibility alias Pleroma.Web.AdminAPI.AccountView alias Pleroma.Web.CommonAPI import Pleroma.Factory + import Mock require Pleroma.Constants @@ -21,12 +23,124 @@ defmodule Pleroma.Web.CommonAPITest do setup do: clear_config([:instance, :limit]) setup do: clear_config([:instance, :max_pinned_statuses]) + describe "unblocking" do + test "it works even without an existing block activity" do + blocked = insert(:user) + blocker = insert(:user) + User.block(blocker, blocked) + + assert User.blocks?(blocker, blocked) + assert {:ok, :no_activity} == CommonAPI.unblock(blocker, blocked) + refute User.blocks?(blocker, blocked) + end + end + + describe "deletion" do + test "it works with pruned objects" do + user = insert(:user) + + {:ok, post} = CommonAPI.post(user, %{status: "namu amida butsu"}) + + clear_config([:instance, :federating], true) + + Object.normalize(post, false) + |> Object.prune() + + with_mock Pleroma.Web.Federator, + publish: fn _ -> nil end do + assert {:ok, delete} = CommonAPI.delete(post.id, user) + assert delete.local + assert called(Pleroma.Web.Federator.publish(delete)) + end + + refute Activity.get_by_id(post.id) + end + + test "it allows users to delete their posts" do + user = insert(:user) + + {: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) + assert delete.local + assert called(Pleroma.Web.Federator.publish(delete)) + end + + refute Activity.get_by_id(post.id) + end + + test "it does not allow a user to delete their posts" do + user = insert(:user) + other_user = insert(:user) + + {:ok, post} = CommonAPI.post(user, %{status: "namu amida butsu"}) + + assert {:error, "Could not delete"} = CommonAPI.delete(post.id, other_user) + assert Activity.get_by_id(post.id) + end + + test "it allows moderators to delete other user's posts" do + user = insert(:user) + moderator = insert(:user, is_moderator: true) + + {:ok, post} = CommonAPI.post(user, %{status: "namu amida butsu"}) + + assert {:ok, delete} = CommonAPI.delete(post.id, moderator) + assert delete.local + + refute Activity.get_by_id(post.id) + end + + test "it allows admins to delete other user's posts" do + user = insert(:user) + moderator = insert(:user, is_admin: true) + + {:ok, post} = CommonAPI.post(user, %{status: "namu amida butsu"}) + + assert {:ok, delete} = CommonAPI.delete(post.id, moderator) + assert delete.local + + refute Activity.get_by_id(post.id) + end + + test "superusers deleting non-local posts won't federate the delete" do + # This is the user of the ingested activity + _user = + insert(:user, + local: false, + ap_id: "http://mastodon.example.org/users/admin", + last_refreshed_at: NaiveDateTime.utc_now() + ) + + moderator = insert(:user, is_admin: true) + + data = + File.read!("test/fixtures/mastodon-post-activity.json") + |> Jason.decode!() + + {:ok, post} = Transmogrifier.handle_incoming(data) + + with_mock Pleroma.Web.Federator, + publish: fn _ -> nil end do + assert {:ok, delete} = CommonAPI.delete(post.id, moderator) + assert delete.local + refute called(Pleroma.Web.Federator.publish(:_)) + end + + refute Activity.get_by_id(post.id) + end + end + test "favoriting race condition" do user = insert(:user) users_serial = insert_list(10, :user) users = insert_list(10, :user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "."}) + {:ok, activity} = CommonAPI.post(user, %{status: "."}) users_serial |> Enum.map(fn user -> @@ -53,7 +167,7 @@ test "repeating race condition" do users_serial = insert_list(10, :user) users = insert_list(10, :user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "."}) + {:ok, activity} = CommonAPI.post(user, %{status: "."}) users_serial |> Enum.map(fn user -> @@ -77,12 +191,12 @@ test "repeating race condition" do test "when replying to a conversation / participation, it will set the correct context id even if no explicit reply_to is given" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "direct"}) + {:ok, activity} = CommonAPI.post(user, %{status: ".", visibility: "direct"}) [participation] = Participation.for_user(user) {:ok, convo_reply} = - CommonAPI.post(user, %{"status" => ".", "in_reply_to_conversation_id" => participation.id}) + CommonAPI.post(user, %{status: ".", in_reply_to_conversation_id: participation.id}) assert Visibility.is_direct?(convo_reply) @@ -96,8 +210,8 @@ test "when replying to a conversation / participation, it only mentions the reci {:ok, activity} = CommonAPI.post(har, %{ - "status" => "@#{jafnhar.nickname} hey", - "visibility" => "direct" + status: "@#{jafnhar.nickname} hey", + visibility: "direct" }) assert har.ap_id in activity.recipients @@ -107,10 +221,10 @@ test "when replying to a conversation / participation, it only mentions the reci {:ok, activity} = CommonAPI.post(har, %{ - "status" => "I don't really like @#{tridi.nickname}", - "visibility" => "direct", - "in_reply_to_status_id" => activity.id, - "in_reply_to_conversation_id" => participation.id + status: "I don't really like @#{tridi.nickname}", + visibility: "direct", + in_reply_to_status_id: activity.id, + in_reply_to_conversation_id: participation.id }) assert har.ap_id in activity.recipients @@ -127,8 +241,8 @@ test "with the safe_dm_mention option set, it does not mention people beyond the {:ok, activity} = CommonAPI.post(har, %{ - "status" => "@#{jafnhar.nickname} hey, i never want to see @#{tridi.nickname} again", - "visibility" => "direct" + status: "@#{jafnhar.nickname} hey, i never want to see @#{tridi.nickname} again", + visibility: "direct" }) refute tridi.ap_id in activity.recipients @@ -137,7 +251,7 @@ test "with the safe_dm_mention option set, it does not mention people beyond the test "it de-duplicates tags" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "#2hu #2HU"}) + {:ok, activity} = CommonAPI.post(user, %{status: "#2hu #2HU"}) object = Object.normalize(activity) @@ -146,7 +260,7 @@ test "it de-duplicates tags" do test "it adds emoji in the object" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => ":firefox:"}) + {:ok, activity} = CommonAPI.post(user, %{status: ":firefox:"}) assert Object.normalize(activity).data["emoji"]["firefox"] end @@ -160,9 +274,9 @@ test "it supports explicit addressing" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => + status: "Hey, I think @#{user_three.nickname} is ugly. @#{user_four.nickname} is alright though.", - "to" => [user_two.nickname, user_four.nickname, "nonexistent"] + to: [user_two.nickname, user_four.nickname, "nonexistent"] }) assert user.ap_id in activity.recipients @@ -178,8 +292,8 @@ test "it filters out obviously bad tags when accepting a post as HTML" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => post, - "content_type" => "text/html" + status: post, + content_type: "text/html" }) object = Object.normalize(activity) @@ -194,8 +308,8 @@ test "it filters out obviously bad tags when accepting a post as Markdown" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => post, - "content_type" => "text/markdown" + status: post, + content_type: "text/markdown" }) object = Object.normalize(activity) @@ -206,31 +320,56 @@ test "it filters out obviously bad tags when accepting a post as Markdown" do test "it does not allow replies to direct messages that are not direct messages themselves" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "suya..", "visibility" => "direct"}) + {:ok, activity} = CommonAPI.post(user, %{status: "suya..", visibility: "direct"}) assert {:ok, _} = CommonAPI.post(user, %{ - "status" => "suya..", - "visibility" => "direct", - "in_reply_to_status_id" => activity.id + status: "suya..", + visibility: "direct", + in_reply_to_status_id: activity.id }) Enum.each(["public", "private", "unlisted"], fn visibility -> assert {:error, "The message visibility must be direct"} = CommonAPI.post(user, %{ - "status" => "suya..", - "visibility" => visibility, - "in_reply_to_status_id" => activity.id + status: "suya..", + visibility: visibility, + in_reply_to_status_id: activity.id }) 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) - {:ok, activity} = - CommonAPI.post(user, %{"status" => "foobar", "visibility" => "list:#{list.id}"}) + {:ok, activity} = CommonAPI.post(user, %{status: "foobar", visibility: "list:#{list.id}"}) assert activity.data["bcc"] == [list.ap_id] assert activity.recipients == [list.ap_id, user.ap_id] @@ -241,7 +380,7 @@ test "it returns error when status is empty and no attachments" do user = insert(:user) assert {:error, "Cannot post an empty status without attachments"} = - CommonAPI.post(user, %{"status" => ""}) + CommonAPI.post(user, %{status: ""}) end test "it validates character limits are correctly enforced" do @@ -250,9 +389,9 @@ test "it validates character limits are correctly enforced" do user = insert(:user) assert {:error, "The status is over the character limit"} = - CommonAPI.post(user, %{"status" => "foobar"}) + CommonAPI.post(user, %{status: "foobar"}) - assert {:ok, activity} = CommonAPI.post(user, %{"status" => "12345"}) + assert {:ok, activity} = CommonAPI.post(user, %{status: "12345"}) end test "it can handle activities that expire" do @@ -263,8 +402,7 @@ test "it can handle activities that expire" do |> NaiveDateTime.truncate(:second) |> NaiveDateTime.add(1_000_000, :second) - assert {:ok, activity} = - CommonAPI.post(user, %{"status" => "chai", "expires_in" => 1_000_000}) + assert {:ok, activity} = CommonAPI.post(user, %{status: "chai", expires_in: 1_000_000}) assert expiration = Pleroma.ActivityExpiration.get_by_activity_id(activity.id) assert expiration.scheduled_at == expires_at @@ -276,14 +414,14 @@ test "reacting to a status with an emoji" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "cofe"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "cofe"}) - {:ok, reaction, _} = CommonAPI.react_with_emoji(activity.id, user, "👍") + {:ok, reaction} = CommonAPI.react_with_emoji(activity.id, user, "👍") assert reaction.data["actor"] == user.ap_id assert reaction.data["content"] == "👍" - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "cofe"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "cofe"}) {:error, _} = CommonAPI.react_with_emoji(activity.id, user, ".") end @@ -292,51 +430,54 @@ test "unreacting to a status with an emoji" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "cofe"}) - {:ok, reaction, _} = CommonAPI.react_with_emoji(activity.id, user, "👍") + {:ok, activity} = CommonAPI.post(other_user, %{status: "cofe"}) + {:ok, reaction} = CommonAPI.react_with_emoji(activity.id, user, "👍") - {:ok, unreaction, _} = CommonAPI.unreact_with_emoji(activity.id, user, "👍") + {:ok, unreaction} = CommonAPI.unreact_with_emoji(activity.id, user, "👍") assert unreaction.data["type"] == "Undo" assert unreaction.data["object"] == reaction.data["id"] + assert unreaction.local end test "repeating a status" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "cofe"}) + {: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 user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "cofe"}) + {: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 user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "cofe"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "cofe"}) - {:ok, %Activity{} = announce_activity, _} = - CommonAPI.repeat(activity.id, user, %{"visibility" => "private"}) + {: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 user = insert(:user) other_user = insert(:user) - {:ok, post_activity} = CommonAPI.post(other_user, %{"status" => "cofe"}) + {:ok, post_activity} = CommonAPI.post(other_user, %{status: "cofe"}) {:ok, %Activity{data: data}} = CommonAPI.favorite(user, post_activity.id) assert data["type"] == "Like" @@ -348,16 +489,16 @@ test "retweeting a status twice returns the status" do user = insert(:user) 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} = CommonAPI.post(other_user, %{status: "cofe"}) + {: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 user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "cofe"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "cofe"}) {:ok, %Activity{}} = CommonAPI.favorite(user, activity.id) assert {:ok, :already_liked} = CommonAPI.favorite(user, activity.id) end @@ -368,7 +509,7 @@ test "favoriting a status twice returns ok, but without the like activity" do Pleroma.Config.put([:instance, :max_pinned_statuses], 1) user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "HI!!!"}) + {:ok, activity} = CommonAPI.post(user, %{status: "HI!!!"}) [user: user, activity: activity] end @@ -385,8 +526,8 @@ test "pin status", %{user: user, activity: activity} do test "pin poll", %{user: user} do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "How is fediverse today?", - "poll" => %{"options" => ["Absolutely outstanding", "Not good"], "expires_in" => 20} + status: "How is fediverse today?", + poll: %{options: ["Absolutely outstanding", "Not good"], expires_in: 20} }) assert {:ok, ^activity} = CommonAPI.pin(activity.id, user) @@ -398,7 +539,7 @@ test "pin poll", %{user: user} do end test "unlisted statuses can be pinned", %{user: user} do - {:ok, activity} = CommonAPI.post(user, %{"status" => "HI!!!", "visibility" => "unlisted"}) + {:ok, activity} = CommonAPI.post(user, %{status: "HI!!!", visibility: "unlisted"}) assert {:ok, ^activity} = CommonAPI.pin(activity.id, user) end @@ -409,7 +550,7 @@ test "only self-authored can be pinned", %{activity: activity} do end test "max pinned statuses", %{user: user, activity: activity_one} do - {:ok, activity_two} = CommonAPI.post(user, %{"status" => "HI!!!"}) + {:ok, activity_two} = CommonAPI.post(user, %{status: "HI!!!"}) assert {:ok, ^activity_one} = CommonAPI.pin(activity_one.id, user) @@ -477,7 +618,7 @@ test "creates a report" do reporter = insert(:user) target_user = insert(:user) - {:ok, activity} = CommonAPI.post(target_user, %{"status" => "foobar"}) + {:ok, activity} = CommonAPI.post(target_user, %{status: "foobar"}) reporter_ap_id = reporter.ap_id target_ap_id = target_user.ap_id @@ -714,8 +855,8 @@ test "does not allow to vote twice" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "Am I cute?", - "poll" => %{"options" => ["Yes", "No"], "expires_in" => 20} + status: "Am I cute?", + poll: %{options: ["Yes", "No"], expires_in: 20} }) object = Object.normalize(activity) @@ -732,10 +873,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) @@ -750,11 +891,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 18a3b3b87..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 @@ -228,7 +251,7 @@ test "for public posts, a reply" do user = insert(:user) mentioned_user = insert(:user) third_user = insert(:user) - {:ok, activity} = CommonAPI.post(third_user, %{"status" => "uguu"}) + {:ok, activity} = CommonAPI.post(third_user, %{status: "uguu"}) mentions = [mentioned_user.ap_id] {to, cc} = Utils.get_to_and_cc(user, mentions, activity, "public", nil) @@ -261,7 +284,7 @@ test "for unlisted posts, a reply" do user = insert(:user) mentioned_user = insert(:user) third_user = insert(:user) - {:ok, activity} = CommonAPI.post(third_user, %{"status" => "uguu"}) + {:ok, activity} = CommonAPI.post(third_user, %{status: "uguu"}) mentions = [mentioned_user.ap_id] {to, cc} = Utils.get_to_and_cc(user, mentions, activity, "unlisted", nil) @@ -292,16 +315,15 @@ test "for private posts, a reply" do user = insert(:user) mentioned_user = insert(:user) third_user = insert(:user) - {:ok, activity} = CommonAPI.post(third_user, %{"status" => "uguu"}) + {:ok, activity} = CommonAPI.post(third_user, %{status: "uguu"}) mentions = [mentioned_user.ap_id] {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 @@ -322,11 +344,20 @@ test "for direct posts, a reply" do user = insert(:user) mentioned_user = insert(:user) third_user = insert(:user) - {:ok, activity} = CommonAPI.post(third_user, %{"status" => "uguu"}) + {:ok, activity} = CommonAPI.post(third_user, %{status: "uguu"}) mentions = [mentioned_user.ap_id] {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) @@ -463,8 +494,8 @@ test "returns attachments with descs" do desc = Jason.encode!(%{object.id => "test-desc"}) assert Utils.attachments_from_ids(%{ - "media_ids" => ["#{object.id}"], - "descriptions" => desc + media_ids: ["#{object.id}"], + descriptions: desc }) == [ Map.merge(object.data, %{"name" => "test-desc"}) ] @@ -472,7 +503,7 @@ test "returns attachments with descs" do test "returns attachments without descs" do object = insert(:note) - assert Utils.attachments_from_ids(%{"media_ids" => ["#{object.id}"]}) == [object.data] + assert Utils.attachments_from_ids(%{media_ids: ["#{object.id}"]}) == [object.data] end test "returns [] when not pass media_ids" do diff --git a/test/web/federator_test.exs b/test/web/federator_test.exs index 261518ef0..de90aa6e0 100644 --- a/test/web/federator_test.exs +++ b/test/web/federator_test.exs @@ -29,7 +29,7 @@ defmodule Pleroma.Web.FederatorTest do describe "Publish an activity" do setup do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "HI"}) + {:ok, activity} = CommonAPI.post(user, %{status: "HI"}) relay_mock = { Pleroma.Web.ActivityPub.Relay, @@ -96,7 +96,7 @@ test "it federates only to reachable instances via AP" do Instances.set_consistently_unreachable(URI.parse(inbox2).host) {:ok, _activity} = - CommonAPI.post(user, %{"status" => "HI @nick1@domain.com, @nick2@domain2.com!"}) + CommonAPI.post(user, %{status: "HI @nick1@domain.com, @nick2@domain2.com!"}) expected_dt = NaiveDateTime.to_iso8601(dt) diff --git a/test/web/feed/tag_controller_test.exs b/test/web/feed/tag_controller_test.exs index d95aac108..3c29cd94f 100644 --- a/test/web/feed/tag_controller_test.exs +++ b/test/web/feed/tag_controller_test.exs @@ -21,7 +21,7 @@ test "gets a feed (ATOM)", %{conn: conn} do ) user = insert(:user) - {:ok, activity1} = CommonAPI.post(user, %{"status" => "yeah #PleromaArt"}) + {:ok, activity1} = CommonAPI.post(user, %{status: "yeah #PleromaArt"}) object = Object.normalize(activity1) @@ -43,9 +43,9 @@ test "gets a feed (ATOM)", %{conn: conn} do |> Ecto.Changeset.change(data: object_data) |> Pleroma.Repo.update() - {:ok, activity2} = CommonAPI.post(user, %{"status" => "42 This is :moominmamma #PleromaArt"}) + {:ok, activity2} = CommonAPI.post(user, %{status: "42 This is :moominmamma #PleromaArt"}) - {:ok, _activity3} = CommonAPI.post(user, %{"status" => "This is :moominmamma"}) + {:ok, _activity3} = CommonAPI.post(user, %{status: "This is :moominmamma"}) response = conn @@ -88,7 +88,7 @@ test "gets a feed (RSS)", %{conn: conn} do ) user = insert(:user) - {:ok, activity1} = CommonAPI.post(user, %{"status" => "yeah #PleromaArt"}) + {:ok, activity1} = CommonAPI.post(user, %{status: "yeah #PleromaArt"}) object = Object.normalize(activity1) @@ -110,9 +110,9 @@ test "gets a feed (RSS)", %{conn: conn} do |> Ecto.Changeset.change(data: object_data) |> Pleroma.Repo.update() - {:ok, activity2} = CommonAPI.post(user, %{"status" => "42 This is :moominmamma #PleromaArt"}) + {:ok, activity2} = CommonAPI.post(user, %{status: "42 This is :moominmamma #PleromaArt"}) - {:ok, _activity3} = CommonAPI.post(user, %{"status" => "This is :moominmamma"}) + {:ok, _activity3} = CommonAPI.post(user, %{status: "This is :moominmamma"}) response = conn @@ -138,8 +138,8 @@ test "gets a feed (RSS)", %{conn: conn} do ] assert xpath(xml, ~x"//channel/item/pubDate/text()"sl) == [ - FeedView.pub_date(activity1.data["published"]), - FeedView.pub_date(activity2.data["published"]) + FeedView.pub_date(activity2.data["published"]), + FeedView.pub_date(activity1.data["published"]) ] assert xpath(xml, ~x"//channel/item/enclosure/@url"sl) == [ 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..696228203 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 @@ -112,6 +112,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"}) diff --git a/test/web/mastodon_api/controllers/account_controller_test.exs b/test/web/mastodon_api/controllers/account_controller_test.exs index b9da7e924..1ce97378d 100644 --- a/test/web/mastodon_api/controllers/account_controller_test.exs +++ b/test/web/mastodon_api/controllers/account_controller_test.exs @@ -222,14 +222,41 @@ test "if user is authenticated", %{local: local, remote: remote} do describe "user timelines" do setup do: oauth_access(["read:statuses"]) + test "works with announces that are just addressed to public", %{conn: conn} do + user = insert(:user, ap_id: "https://honktest/u/test", local: false) + other_user = insert(:user) + + {:ok, post} = CommonAPI.post(other_user, %{status: "bonkeronk"}) + + {:ok, 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" + } + |> ActivityPub.persist(local: false) + + assert resp = + conn + |> get("/api/v1/accounts/#{user.id}/statuses") + |> json_response_and_validate_schema(200) + + assert [%{"id" => id}] = resp + assert id == announce.id + end + test "respects blocks", %{user: user_one, conn: conn} do user_two = insert(:user) user_three = insert(:user) 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, activity} = CommonAPI.post(user_two, %{status: "User one sux0rz"}) + {:ok, repeat} = CommonAPI.repeat(activity.id, user_three) assert resp = conn @@ -271,16 +298,16 @@ test "gets users statuses", %{conn: conn} do {:ok, _user_three} = User.follow(user_three, user_one) - {:ok, activity} = CommonAPI.post(user_one, %{"status" => "HI!!!"}) + {:ok, activity} = CommonAPI.post(user_one, %{status: "HI!!!"}) {:ok, direct_activity} = CommonAPI.post(user_one, %{ - "status" => "Hi, @#{user_two.nickname}.", - "visibility" => "direct" + status: "Hi, @#{user_two.nickname}.", + visibility: "direct" }) {:ok, private_activity} = - CommonAPI.post(user_one, %{"status" => "private", "visibility" => "private"}) + CommonAPI.post(user_one, %{status: "private", visibility: "private"}) # TODO!!! resp = @@ -335,8 +362,7 @@ test "gets an users media", %{conn: conn} do {:ok, %{id: media_id}} = ActivityPub.upload(file, actor: user.ap_id) - {:ok, %{id: image_post_id}} = - CommonAPI.post(user, %{"status" => "cofe", "media_ids" => [media_id]}) + {:ok, %{id: image_post_id}} = CommonAPI.post(user, %{status: "cofe", media_ids: [media_id]}) conn = get(conn, "/api/v1/accounts/#{user.id}/statuses?only_media=true") @@ -348,8 +374,8 @@ test "gets an users media", %{conn: conn} do end 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, %{id: post_id}} = CommonAPI.post(user, %{status: "HI!!!"}) + {: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) @@ -359,8 +385,8 @@ test "gets a user's statuses without reblogs", %{user: user, conn: conn} do end test "filters user's statuses by a hashtag", %{user: user, conn: conn} do - {:ok, %{id: post_id}} = CommonAPI.post(user, %{"status" => "#hashtag"}) - {:ok, _post} = CommonAPI.post(user, %{"status" => "hashtag"}) + {:ok, %{id: post_id}} = CommonAPI.post(user, %{status: "#hashtag"}) + {:ok, _post} = CommonAPI.post(user, %{status: "hashtag"}) conn = get(conn, "/api/v1/accounts/#{user.id}/statuses?tagged=hashtag") assert [%{"id" => ^post_id}] = json_response_and_validate_schema(conn, 200) @@ -371,9 +397,9 @@ test "the user views their own timelines and excludes direct messages", %{ conn: conn } do {:ok, %{id: public_activity_id}} = - CommonAPI.post(user, %{"status" => ".", "visibility" => "public"}) + CommonAPI.post(user, %{status: ".", visibility: "public"}) - {:ok, _direct_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "direct"}) + {:ok, _direct_activity} = CommonAPI.post(user, %{status: ".", visibility: "direct"}) conn = get(conn, "/api/v1/accounts/#{user.id}/statuses?exclude_visibilities[]=direct") assert [%{"id" => ^public_activity_id}] = json_response_and_validate_schema(conn, 200) @@ -651,8 +677,8 @@ 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, activity} = CommonAPI.post(other_user, %{status: "hey"}) + {:ok, %{id: reblog_id}} = CommonAPI.repeat(activity.id, followed) assert [] == conn @@ -750,7 +776,7 @@ test "without notifications", %{conn: conn} do describe "pinned statuses" do setup do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "HI!!!"}) + {:ok, activity} = CommonAPI.post(user, %{status: "HI!!!"}) %{conn: conn} = oauth_access(["read:statuses"], user: user) [conn: conn, user: user, activity: activity] @@ -1196,12 +1222,15 @@ test "returns lists to which the account belongs" do describe "verify_credentials" do test "verify_credentials" do %{user: user, conn: conn} = oauth_access(["read:accounts"]) + [notification | _] = insert_list(7, :notification, user: user) + Pleroma.Notification.set_read_up_to(user, notification.id) conn = get(conn, "/api/v1/accounts/verify_credentials") response = json_response_and_validate_schema(conn, 200) assert %{"id" => id, "source" => %{"privacy" => "public"}} = response assert response["pleroma"]["chat_token"] + assert response["pleroma"]["unread_notifications_count"] == 6 assert id == to_string(user.id) end diff --git a/test/web/mastodon_api/controllers/conversation_controller_test.exs b/test/web/mastodon_api/controllers/conversation_controller_test.exs index 801b0259b..3e21e6bf1 100644 --- a/test/web/mastodon_api/controllers/conversation_controller_test.exs +++ b/test/web/mastodon_api/controllers/conversation_controller_test.exs @@ -12,133 +12,127 @@ 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(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} = 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]) - {: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" - }) - - [conversation1, conversation2] = - conn - |> get("/api/v1/conversations", %{"recipients" => [user_two.id]}) - |> json_response(200) + assert [conversation1, conversation2] = + conn + |> get("/api/v1/conversations?recipients[]=#{user_two.id}") + |> json_response_and_validate_schema(200) assert conversation1["last_status"]["id"] == direct5.id assert conversation2["last_status"]["id"] == direct1.id [conversation1] = conn - |> get("/api/v1/conversations", %{"recipients" => [user_two.id, user_three.id]}) - |> json_response(200) + |> get("/api/v1/conversations?recipients[]=#{user_two.id}&recipients[]=#{user_three.id}") + |> json_response_and_validate_schema(200) assert conversation1["last_status"]["id"] == direct3.id end 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, %{ - "status" => "reply", - "visibility" => "direct", - "in_reply_to_status_id" => direct.id + status: "reply", + visibility: "direct", + in_reply_to_status_id: direct.id }) [%{"last_status" => res_last_status}] = conn |> get("/api/v1/conversations") - |> json_response(200) + |> json_response_and_validate_schema(200) assert res_last_status["id"] == direct_reply.id end 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 @@ -154,12 +148,12 @@ test "the user marks a conversation as read", %{user: user_one, conn: conn} do [%{"id" => direct_conversation_id, "unread" => true}] = user_two_conn |> get("/api/v1/conversations") - |> json_response(200) + |> json_response_and_validate_schema(200) %{"unread" => false} = user_two_conn |> post("/api/v1/conversations/#{direct_conversation_id}/read") - |> json_response(200) + |> json_response_and_validate_schema(200) 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 == 0 @@ -167,15 +161,15 @@ test "the user marks a conversation as read", %{user: user_one, conn: conn} do # The conversation is marked as unread on reply {:ok, _} = CommonAPI.post(user_two, %{ - "status" => "reply", - "visibility" => "direct", - "in_reply_to_status_id" => direct.id + status: "reply", + visibility: "direct", + in_reply_to_status_id: direct.id }) [%{"unread" => true}] = conn |> get("/api/v1/conversations") - |> json_response(200) + |> json_response_and_validate_schema(200) assert User.get_cached_by_id(user_one.id).unread_conversation_count == 1 assert User.get_cached_by_id(user_two.id).unread_conversation_count == 0 @@ -183,9 +177,9 @@ test "the user marks a conversation as read", %{user: user_one, conn: conn} do # A reply doesn't increment the user's unread_conversation_count if the conversation is unread {:ok, _} = CommonAPI.post(user_two, %{ - "status" => "reply", - "visibility" => "direct", - "in_reply_to_status_id" => direct.id + status: "reply", + visibility: "direct", + in_reply_to_status_id: direct.id }) assert User.get_cached_by_id(user_one.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/filter_controller_test.exs b/test/web/mastodon_api/controllers/filter_controller_test.exs index 97ab005e0..f29547d13 100644 --- a/test/web/mastodon_api/controllers/filter_controller_test.exs +++ b/test/web/mastodon_api/controllers/filter_controller_test.exs @@ -15,9 +15,12 @@ test "creating a filter" do context: ["home"] } - conn = post(conn, "/api/v1/filters", %{"phrase" => filter.phrase, context: filter.context}) + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/filters", %{"phrase" => filter.phrase, context: filter.context}) - assert response = json_response(conn, 200) + assert response = json_response_and_validate_schema(conn, 200) assert response["phrase"] == filter.phrase assert response["context"] == filter.context assert response["irreversible"] == false @@ -48,12 +51,12 @@ test "fetching a list of filters" do response = conn |> get("/api/v1/filters") - |> json_response(200) + |> json_response_and_validate_schema(200) assert response == render_json( FilterView, - "filters.json", + "index.json", filters: [filter_two, filter_one] ) end @@ -72,7 +75,7 @@ test "get a filter" do conn = get(conn, "/api/v1/filters/#{filter.filter_id}") - assert _response = json_response(conn, 200) + assert response = json_response_and_validate_schema(conn, 200) end test "update a filter" do @@ -82,7 +85,8 @@ test "update a filter" do user_id: user.id, filter_id: 2, phrase: "knight", - context: ["home"] + context: ["home"], + hide: true } {:ok, _filter} = Pleroma.Filter.create(query) @@ -93,14 +97,17 @@ test "update a filter" do } conn = - put(conn, "/api/v1/filters/#{query.filter_id}", %{ + conn + |> put_req_header("content-type", "application/json") + |> put("/api/v1/filters/#{query.filter_id}", %{ phrase: new.phrase, context: new.context }) - assert response = json_response(conn, 200) + assert response = json_response_and_validate_schema(conn, 200) assert response["phrase"] == new.phrase assert response["context"] == new.context + assert response["irreversible"] == true end test "delete a filter" do @@ -117,7 +124,6 @@ test "delete a filter" do conn = delete(conn, "/api/v1/filters/#{filter.filter_id}") - assert response = json_response(conn, 200) - assert response == %{} + assert json_response_and_validate_schema(conn, 200) == %{} end end diff --git a/test/web/mastodon_api/controllers/follow_request_controller_test.exs b/test/web/mastodon_api/controllers/follow_request_controller_test.exs index d8dbe4800..44e12d15a 100644 --- a/test/web/mastodon_api/controllers/follow_request_controller_test.exs +++ b/test/web/mastodon_api/controllers/follow_request_controller_test.exs @@ -27,7 +27,7 @@ test "/api/v1/follow_requests works", %{user: user, conn: conn} do conn = get(conn, "/api/v1/follow_requests") - assert [relationship] = json_response(conn, 200) + assert [relationship] = json_response_and_validate_schema(conn, 200) assert to_string(other_user.id) == relationship["id"] end @@ -44,7 +44,7 @@ test "/api/v1/follow_requests/:id/authorize works", %{user: user, conn: conn} do conn = post(conn, "/api/v1/follow_requests/#{other_user.id}/authorize") - assert relationship = json_response(conn, 200) + assert relationship = json_response_and_validate_schema(conn, 200) assert to_string(other_user.id) == relationship["id"] user = User.get_cached_by_id(user.id) @@ -62,7 +62,7 @@ test "/api/v1/follow_requests/:id/reject works", %{user: user, conn: conn} do conn = post(conn, "/api/v1/follow_requests/#{other_user.id}/reject") - assert relationship = json_response(conn, 200) + assert relationship = json_response_and_validate_schema(conn, 200) assert to_string(other_user.id) == relationship["id"] user = User.get_cached_by_id(user.id) diff --git a/test/web/mastodon_api/controllers/instance_controller_test.exs b/test/web/mastodon_api/controllers/instance_controller_test.exs index 2c7fd9fd0..8bdfdddd1 100644 --- a/test/web/mastodon_api/controllers/instance_controller_test.exs +++ b/test/web/mastodon_api/controllers/instance_controller_test.exs @@ -10,7 +10,7 @@ defmodule Pleroma.Web.MastodonAPI.InstanceControllerTest do test "get instance information", %{conn: conn} do conn = get(conn, "/api/v1/instance") - assert result = json_response(conn, 200) + assert result = json_response_and_validate_schema(conn, 200) email = Pleroma.Config.get([:instance, :email]) # Note: not checking for "max_toot_chars" since it's optional @@ -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"] @@ -50,13 +51,13 @@ test "get instance stats", %{conn: conn} do insert(:user, %{local: false, nickname: "u@peer1.com"}) insert(:user, %{local: false, nickname: "u@peer2.com"}) - {:ok, _} = Pleroma.Web.CommonAPI.post(user, %{"status" => "cofe"}) + {:ok, _} = Pleroma.Web.CommonAPI.post(user, %{status: "cofe"}) Pleroma.Stats.force_update() conn = get(conn, "/api/v1/instance") - assert result = json_response(conn, 200) + assert result = json_response_and_validate_schema(conn, 200) stats = result["stats"] @@ -74,7 +75,7 @@ test "get peers", %{conn: conn} do conn = get(conn, "/api/v1/instance/peers") - assert result = json_response(conn, 200) + assert result = json_response_and_validate_schema(conn, 200) assert ["peer1.com", "peer2.com"] == Enum.sort(result) end diff --git a/test/web/mastodon_api/controllers/list_controller_test.exs b/test/web/mastodon_api/controllers/list_controller_test.exs index c9c4cbb49..57a9ef4a4 100644 --- a/test/web/mastodon_api/controllers/list_controller_test.exs +++ b/test/web/mastodon_api/controllers/list_controller_test.exs @@ -12,37 +12,44 @@ defmodule Pleroma.Web.MastodonAPI.ListControllerTest do test "creating a list" do %{conn: conn} = oauth_access(["write:lists"]) - conn = post(conn, "/api/v1/lists", %{"title" => "cuties"}) - - assert %{"title" => title} = json_response(conn, 200) - assert title == "cuties" + assert %{"title" => "cuties"} = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/lists", %{"title" => "cuties"}) + |> json_response_and_validate_schema(:ok) end test "renders error for invalid params" do %{conn: conn} = oauth_access(["write:lists"]) - conn = post(conn, "/api/v1/lists", %{"title" => nil}) + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/lists", %{"title" => nil}) - assert %{"error" => "can't be blank"} == json_response(conn, :unprocessable_entity) + assert %{"error" => "title - null value where string expected."} = + json_response_and_validate_schema(conn, 400) end test "listing a user's lists" do %{conn: conn} = oauth_access(["read:lists", "write:lists"]) conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/lists", %{"title" => "cuties"}) - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/lists", %{"title" => "cofe"}) - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) conn = get(conn, "/api/v1/lists") assert [ %{"id" => _, "title" => "cofe"}, %{"id" => _, "title" => "cuties"} - ] = json_response(conn, :ok) + ] = json_response_and_validate_schema(conn, :ok) end test "adding users to a list" do @@ -50,9 +57,12 @@ test "adding users to a list" do other_user = insert(:user) {:ok, list} = Pleroma.List.create("name", user) - conn = post(conn, "/api/v1/lists/#{list.id}/accounts", %{"account_ids" => [other_user.id]}) + assert %{} == + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/lists/#{list.id}/accounts", %{"account_ids" => [other_user.id]}) + |> json_response_and_validate_schema(:ok) - assert %{} == json_response(conn, 200) %Pleroma.List{following: following} = Pleroma.List.get(list.id, user) assert following == [other_user.follower_address] end @@ -65,9 +75,12 @@ test "removing users from a list" do {:ok, list} = Pleroma.List.follow(list, other_user) {:ok, list} = Pleroma.List.follow(list, third_user) - conn = delete(conn, "/api/v1/lists/#{list.id}/accounts", %{"account_ids" => [other_user.id]}) + assert %{} == + conn + |> put_req_header("content-type", "application/json") + |> delete("/api/v1/lists/#{list.id}/accounts", %{"account_ids" => [other_user.id]}) + |> json_response_and_validate_schema(:ok) - assert %{} == json_response(conn, 200) %Pleroma.List{following: following} = Pleroma.List.get(list.id, user) assert following == [third_user.follower_address] end @@ -83,7 +96,7 @@ test "listing users in a list" do |> assign(:user, user) |> get("/api/v1/lists/#{list.id}/accounts", %{"account_ids" => [other_user.id]}) - assert [%{"id" => id}] = json_response(conn, 200) + assert [%{"id" => id}] = json_response_and_validate_schema(conn, 200) assert id == to_string(other_user.id) end @@ -96,7 +109,7 @@ test "retrieving a list" do |> assign(:user, user) |> get("/api/v1/lists/#{list.id}") - assert %{"id" => id} = json_response(conn, 200) + assert %{"id" => id} = json_response_and_validate_schema(conn, 200) assert id == to_string(list.id) end @@ -105,17 +118,18 @@ test "renders 404 if list is not found" do conn = get(conn, "/api/v1/lists/666") - assert %{"error" => "List not found"} = json_response(conn, :not_found) + assert %{"error" => "List not found"} = json_response_and_validate_schema(conn, :not_found) end test "renaming a list" do %{user: user, conn: conn} = oauth_access(["write:lists"]) {:ok, list} = Pleroma.List.create("name", user) - conn = put(conn, "/api/v1/lists/#{list.id}", %{"title" => "newname"}) - - assert %{"title" => name} = json_response(conn, 200) - assert name == "newname" + assert %{"title" => "newname"} = + conn + |> put_req_header("content-type", "application/json") + |> put("/api/v1/lists/#{list.id}", %{"title" => "newname"}) + |> json_response_and_validate_schema(:ok) end test "validates title when renaming a list" do @@ -125,9 +139,11 @@ test "validates title when renaming a list" do conn = conn |> assign(:user, user) + |> put_req_header("content-type", "application/json") |> put("/api/v1/lists/#{list.id}", %{"title" => " "}) - assert %{"error" => "can't be blank"} == json_response(conn, :unprocessable_entity) + assert %{"error" => "can't be blank"} == + json_response_and_validate_schema(conn, :unprocessable_entity) end test "deleting a list" do @@ -136,7 +152,7 @@ test "deleting a list" do conn = delete(conn, "/api/v1/lists/#{list.id}") - assert %{} = json_response(conn, 200) + assert %{} = json_response_and_validate_schema(conn, 200) assert is_nil(Repo.get(Pleroma.List, list.id)) end end diff --git a/test/web/mastodon_api/controllers/marker_controller_test.exs b/test/web/mastodon_api/controllers/marker_controller_test.exs index 919f295bd..6dd40fb4a 100644 --- a/test/web/mastodon_api/controllers/marker_controller_test.exs +++ b/test/web/mastodon_api/controllers/marker_controller_test.exs @@ -11,6 +11,7 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do test "gets markers with correct scopes", %{conn: conn} do user = insert(:user) token = insert(:oauth_token, user: user, scopes: ["read:statuses"]) + insert_list(7, :notification, user: user) {:ok, %{"notifications" => marker}} = Pleroma.Marker.upsert( @@ -22,14 +23,15 @@ test "gets markers with correct scopes", %{conn: conn} do conn |> assign(:user, user) |> assign(:token, token) - |> get("/api/v1/markers", %{timeline: ["notifications"]}) - |> json_response(200) + |> get("/api/v1/markers?timeline[]=notifications") + |> json_response_and_validate_schema(200) assert response == %{ "notifications" => %{ "last_read_id" => "69420", "updated_at" => NaiveDateTime.to_iso8601(marker.updated_at), - "version" => 0 + "version" => 0, + "pleroma" => %{"unread_count" => 7} } } end @@ -45,7 +47,7 @@ test "gets markers with missed scopes", %{conn: conn} do |> assign(:user, user) |> assign(:token, token) |> get("/api/v1/markers", %{timeline: ["notifications"]}) - |> json_response(403) + |> json_response_and_validate_schema(403) assert response == %{"error" => "Insufficient permissions: read:statuses."} end @@ -60,17 +62,19 @@ test "creates a marker with correct scopes", %{conn: conn} do conn |> assign(:user, user) |> assign(:token, token) + |> put_req_header("content-type", "application/json") |> post("/api/v1/markers", %{ home: %{last_read_id: "777"}, notifications: %{"last_read_id" => "69420"} }) - |> json_response(200) + |> json_response_and_validate_schema(200) assert %{ "notifications" => %{ "last_read_id" => "69420", "updated_at" => _, - "version" => 0 + "version" => 0, + "pleroma" => %{"unread_count" => 0} } } = response end @@ -89,17 +93,19 @@ test "updates exist marker", %{conn: conn} do conn |> assign(:user, user) |> assign(:token, token) + |> put_req_header("content-type", "application/json") |> post("/api/v1/markers", %{ home: %{last_read_id: "777"}, notifications: %{"last_read_id" => "69888"} }) - |> json_response(200) + |> json_response_and_validate_schema(200) assert response == %{ "notifications" => %{ "last_read_id" => "69888", "updated_at" => NaiveDateTime.to_iso8601(marker.updated_at), - "version" => 0 + "version" => 0, + "pleroma" => %{"unread_count" => 0} } } end @@ -112,11 +118,12 @@ test "creates a marker with missed scopes", %{conn: conn} do conn |> assign(:user, user) |> assign(:token, token) + |> put_req_header("content-type", "application/json") |> post("/api/v1/markers", %{ home: %{last_read_id: "777"}, notifications: %{"last_read_id" => "69420"} }) - |> json_response(403) + |> json_response_and_validate_schema(403) assert response == %{"error" => "Insufficient permissions: write:statuses."} end 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 db380f76a..e278d61f5 100644 --- a/test/web/mastodon_api/controllers/notification_controller_test.exs +++ b/test/web/mastodon_api/controllers/notification_controller_test.exs @@ -12,13 +12,11 @@ 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) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) {:ok, [_notification]} = Notification.create_notifications(activity) response = @@ -36,7 +34,7 @@ test "list of notifications" do %{user: user, conn: conn} = oauth_access(["read:notifications"]) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) {:ok, [_notification]} = Notification.create_notifications(activity) @@ -60,7 +58,7 @@ test "getting a single notification" do %{user: user, conn: conn} = oauth_access(["read:notifications"]) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) {:ok, [notification]} = Notification.create_notifications(activity) @@ -79,7 +77,7 @@ test "dismissing a single notification (deprecated endpoint)" do %{user: user, conn: conn} = oauth_access(["write:notifications"]) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) {:ok, [notification]} = Notification.create_notifications(activity) @@ -96,7 +94,7 @@ test "dismissing a single notification" do %{user: user, conn: conn} = oauth_access(["write:notifications"]) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) {:ok, [notification]} = Notification.create_notifications(activity) @@ -112,7 +110,7 @@ test "clearing all notifications" do %{user: user, conn: conn} = oauth_access(["write:notifications", "read:notifications"]) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) {:ok, [_notification]} = Notification.create_notifications(activity) @@ -130,10 +128,10 @@ test "paginates notifications using min_id, since_id, max_id, and limit" do %{user: user, conn: conn} = oauth_access(["read:notifications"]) other_user = insert(:user) - {:ok, activity1} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) - {:ok, activity2} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) - {:ok, activity3} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) - {:ok, activity4} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) + {:ok, activity1} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) + {:ok, activity2} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) + {:ok, activity3} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) + {:ok, activity4} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) notification1_id = get_notification_id_by_activity(activity1) notification2_id = get_notification_id_by_activity(activity2) @@ -173,16 +171,16 @@ test "filters notifications for mentions" do other_user = insert(:user) {:ok, public_activity} = - CommonAPI.post(other_user, %{"status" => "@#{user.nickname}", "visibility" => "public"}) + CommonAPI.post(other_user, %{status: "@#{user.nickname}", visibility: "public"}) {:ok, direct_activity} = - CommonAPI.post(other_user, %{"status" => "@#{user.nickname}", "visibility" => "direct"}) + CommonAPI.post(other_user, %{status: "@#{user.nickname}", visibility: "direct"}) {:ok, unlisted_activity} = - CommonAPI.post(other_user, %{"status" => "@#{user.nickname}", "visibility" => "unlisted"}) + CommonAPI.post(other_user, %{status: "@#{user.nickname}", visibility: "unlisted"}) {:ok, private_activity} = - CommonAPI.post(other_user, %{"status" => "@#{user.nickname}", "visibility" => "private"}) + CommonAPI.post(other_user, %{status: "@#{user.nickname}", visibility: "private"}) query = params_to_query(%{exclude_visibilities: ["public", "unlisted", "private"]}) conn_res = get(conn, "/api/v1/notifications?" <> query) @@ -213,17 +211,15 @@ test "filters notifications for Like activities" do user = insert(:user) %{user: other_user, conn: conn} = oauth_access(["read:notifications"]) - {:ok, public_activity} = - CommonAPI.post(other_user, %{"status" => ".", "visibility" => "public"}) + {:ok, public_activity} = CommonAPI.post(other_user, %{status: ".", visibility: "public"}) {:ok, direct_activity} = - CommonAPI.post(other_user, %{"status" => "@#{user.nickname}", "visibility" => "direct"}) + CommonAPI.post(other_user, %{status: "@#{user.nickname}", visibility: "direct"}) {:ok, unlisted_activity} = - CommonAPI.post(other_user, %{"status" => ".", "visibility" => "unlisted"}) + CommonAPI.post(other_user, %{status: ".", visibility: "unlisted"}) - {:ok, private_activity} = - CommonAPI.post(other_user, %{"status" => ".", "visibility" => "private"}) + {:ok, private_activity} = CommonAPI.post(other_user, %{status: ".", visibility: "private"}) {:ok, _} = CommonAPI.favorite(user, public_activity.id) {:ok, _} = CommonAPI.favorite(user, direct_activity.id) @@ -279,14 +275,13 @@ test "filters notifications for Announce activities" do user = insert(:user) %{user: other_user, conn: conn} = oauth_access(["read:notifications"]) - {:ok, public_activity} = - CommonAPI.post(other_user, %{"status" => ".", "visibility" => "public"}) + {:ok, public_activity} = CommonAPI.post(other_user, %{status: ".", visibility: "public"}) {:ok, unlisted_activity} = - CommonAPI.post(other_user, %{"status" => ".", "visibility" => "unlisted"}) + 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 @@ -303,10 +298,10 @@ test "filters notifications using exclude_types" do %{user: user, conn: conn} = oauth_access(["read:notifications"]) other_user = insert(:user) - {:ok, mention_activity} = CommonAPI.post(other_user, %{"status" => "hey @#{user.nickname}"}) - {:ok, create_activity} = CommonAPI.post(user, %{"status" => "hey"}) + {: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,10 +336,10 @@ test "filters notifications using include_types" do %{user: user, conn: conn} = oauth_access(["read:notifications"]) other_user = insert(:user) - {:ok, mention_activity} = CommonAPI.post(other_user, %{"status" => "hey @#{user.nickname}"}) - {:ok, create_activity} = CommonAPI.post(user, %{"status" => "hey"}) + {: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) @@ -388,10 +383,10 @@ test "destroy multiple" do %{user: user, conn: conn} = oauth_access(["read:notifications", "write:notifications"]) other_user = insert(:user) - {:ok, activity1} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) - {:ok, activity2} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) - {:ok, activity3} = CommonAPI.post(user, %{"status" => "hi @#{other_user.nickname}"}) - {:ok, activity4} = CommonAPI.post(user, %{"status" => "hi @#{other_user.nickname}"}) + {:ok, activity1} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) + {:ok, activity2} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) + {:ok, activity3} = CommonAPI.post(user, %{status: "hi @#{other_user.nickname}"}) + {:ok, activity4} = CommonAPI.post(user, %{status: "hi @#{other_user.nickname}"}) notification1_id = get_notification_id_by_activity(activity1) notification2_id = get_notification_id_by_activity(activity2) @@ -435,7 +430,7 @@ test "doesn't see notifications after muting user with notifications" do user2 = insert(:user) {:ok, _, _, _} = CommonAPI.follow(user, user2) - {:ok, _} = CommonAPI.post(user2, %{"status" => "hey @#{user.nickname}"}) + {:ok, _} = CommonAPI.post(user2, %{status: "hey @#{user.nickname}"}) ret_conn = get(conn, "/api/v1/notifications") @@ -453,7 +448,7 @@ test "see notifications after muting user without notifications" do user2 = insert(:user) {:ok, _, _, _} = CommonAPI.follow(user, user2) - {:ok, _} = CommonAPI.post(user2, %{"status" => "hey @#{user.nickname}"}) + {:ok, _} = CommonAPI.post(user2, %{status: "hey @#{user.nickname}"}) ret_conn = get(conn, "/api/v1/notifications") @@ -471,7 +466,7 @@ test "see notifications after muting user with notifications and with_muted para user2 = insert(:user) {:ok, _, _, _} = CommonAPI.follow(user, user2) - {:ok, _} = CommonAPI.post(user2, %{"status" => "hey @#{user.nickname}"}) + {:ok, _} = CommonAPI.post(user2, %{status: "hey @#{user.nickname}"}) ret_conn = get(conn, "/api/v1/notifications") @@ -518,14 +513,14 @@ test "preserves parameters in link headers" do {:ok, activity1} = CommonAPI.post(other_user, %{ - "status" => "hi @#{user.nickname}", - "visibility" => "public" + status: "hi @#{user.nickname}", + visibility: "public" }) {:ok, activity2} = CommonAPI.post(other_user, %{ - "status" => "hi @#{user.nickname}", - "visibility" => "public" + status: "hi @#{user.nickname}", + visibility: "public" }) notification1 = Repo.get_by(Notification, activity_id: activity1.id) @@ -550,8 +545,8 @@ test "account_id" do %{id: account_id} = other_user1 = insert(:user) other_user2 = insert(:user) - {:ok, _activity} = CommonAPI.post(other_user1, %{"status" => "hi @#{user.nickname}"}) - {:ok, _activity} = CommonAPI.post(other_user2, %{"status" => "bye @#{user.nickname}"}) + {:ok, _activity} = CommonAPI.post(other_user1, %{status: "hi @#{user.nickname}"}) + {:ok, _activity} = CommonAPI.post(other_user2, %{status: "bye @#{user.nickname}"}) assert [%{"account" => %{"id" => ^account_id}}] = conn diff --git a/test/web/mastodon_api/controllers/poll_controller_test.exs b/test/web/mastodon_api/controllers/poll_controller_test.exs index 88b13a25a..f41de6448 100644 --- a/test/web/mastodon_api/controllers/poll_controller_test.exs +++ b/test/web/mastodon_api/controllers/poll_controller_test.exs @@ -16,15 +16,15 @@ defmodule Pleroma.Web.MastodonAPI.PollControllerTest do test "returns poll entity for object id", %{user: user, conn: conn} do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "Pleroma does", - "poll" => %{"options" => ["what Mastodon't", "n't what Mastodoes"], "expires_in" => 20} + status: "Pleroma does", + poll: %{options: ["what Mastodon't", "n't what Mastodoes"], expires_in: 20} }) object = Object.normalize(activity) conn = get(conn, "/api/v1/polls/#{object.id}") - response = json_response(conn, 200) + response = json_response_and_validate_schema(conn, 200) id = to_string(object.id) assert %{"id" => ^id, "expired" => false, "multiple" => false} = response end @@ -34,16 +34,16 @@ test "does not expose polls for private statuses", %{conn: conn} do {:ok, activity} = CommonAPI.post(other_user, %{ - "status" => "Pleroma does", - "poll" => %{"options" => ["what Mastodon't", "n't what Mastodoes"], "expires_in" => 20}, - "visibility" => "private" + status: "Pleroma does", + poll: %{options: ["what Mastodon't", "n't what Mastodoes"], expires_in: 20}, + visibility: "private" }) object = Object.normalize(activity) conn = get(conn, "/api/v1/polls/#{object.id}") - assert json_response(conn, 404) + assert json_response_and_validate_schema(conn, 404) end end @@ -55,19 +55,22 @@ test "votes are added to the poll", %{conn: conn} do {:ok, activity} = CommonAPI.post(other_user, %{ - "status" => "A very delicious sandwich", - "poll" => %{ - "options" => ["Lettuce", "Grilled Bacon", "Tomato"], - "expires_in" => 20, - "multiple" => true + status: "A very delicious sandwich", + poll: %{ + options: ["Lettuce", "Grilled Bacon", "Tomato"], + expires_in: 20, + multiple: true } }) object = Object.normalize(activity) - conn = post(conn, "/api/v1/polls/#{object.id}/votes", %{"choices" => [0, 1, 2]}) + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/polls/#{object.id}/votes", %{"choices" => [0, 1, 2]}) - assert json_response(conn, 200) + assert json_response_and_validate_schema(conn, 200) object = Object.get_by_id(object.id) assert Enum.all?(object.data["anyOf"], fn %{"replies" => %{"totalItems" => total_items}} -> @@ -78,15 +81,16 @@ test "votes are added to the poll", %{conn: conn} do test "author can't vote", %{user: user, conn: conn} do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "Am I cute?", - "poll" => %{"options" => ["Yes", "No"], "expires_in" => 20} + status: "Am I cute?", + poll: %{options: ["Yes", "No"], expires_in: 20} }) object = Object.normalize(activity) assert conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/polls/#{object.id}/votes", %{"choices" => [1]}) - |> json_response(422) == %{"error" => "Poll's author can't vote"} + |> json_response_and_validate_schema(422) == %{"error" => "Poll's author can't vote"} object = Object.get_by_id(object.id) @@ -98,15 +102,16 @@ test "does not allow multiple choices on a single-choice question", %{conn: conn {:ok, activity} = CommonAPI.post(other_user, %{ - "status" => "The glass is", - "poll" => %{"options" => ["half empty", "half full"], "expires_in" => 20} + status: "The glass is", + poll: %{options: ["half empty", "half full"], expires_in: 20} }) object = Object.normalize(activity) assert conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/polls/#{object.id}/votes", %{"choices" => [0, 1]}) - |> json_response(422) == %{"error" => "Too many choices"} + |> json_response_and_validate_schema(422) == %{"error" => "Too many choices"} object = Object.get_by_id(object.id) @@ -120,21 +125,27 @@ test "does not allow choice index to be greater than options count", %{conn: con {:ok, activity} = CommonAPI.post(other_user, %{ - "status" => "Am I cute?", - "poll" => %{"options" => ["Yes", "No"], "expires_in" => 20} + status: "Am I cute?", + poll: %{options: ["Yes", "No"], expires_in: 20} }) object = Object.normalize(activity) - conn = post(conn, "/api/v1/polls/#{object.id}/votes", %{"choices" => [2]}) + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/polls/#{object.id}/votes", %{"choices" => [2]}) - assert json_response(conn, 422) == %{"error" => "Invalid indices"} + assert json_response_and_validate_schema(conn, 422) == %{"error" => "Invalid indices"} end test "returns 404 error when object is not exist", %{conn: conn} do - conn = post(conn, "/api/v1/polls/1/votes", %{"choices" => [0]}) + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/polls/1/votes", %{"choices" => [0]}) - assert json_response(conn, 404) == %{"error" => "Record not found"} + assert json_response_and_validate_schema(conn, 404) == %{"error" => "Record not found"} end test "returns 404 when poll is private and not available for user", %{conn: conn} do @@ -142,16 +153,19 @@ test "returns 404 when poll is private and not available for user", %{conn: conn {:ok, activity} = CommonAPI.post(other_user, %{ - "status" => "Am I cute?", - "poll" => %{"options" => ["Yes", "No"], "expires_in" => 20}, - "visibility" => "private" + status: "Am I cute?", + poll: %{options: ["Yes", "No"], expires_in: 20}, + visibility: "private" }) object = Object.normalize(activity) - conn = post(conn, "/api/v1/polls/#{object.id}/votes", %{"choices" => [0]}) + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/polls/#{object.id}/votes", %{"choices" => [0]}) - assert json_response(conn, 404) == %{"error" => "Record not found"} + assert json_response_and_validate_schema(conn, 404) == %{"error" => "Record not found"} end end end diff --git a/test/web/mastodon_api/controllers/report_controller_test.exs b/test/web/mastodon_api/controllers/report_controller_test.exs index 21b037237..6636cff96 100644 --- a/test/web/mastodon_api/controllers/report_controller_test.exs +++ b/test/web/mastodon_api/controllers/report_controller_test.exs @@ -14,7 +14,7 @@ defmodule Pleroma.Web.MastodonAPI.ReportControllerTest do setup do target_user = insert(:user) - {:ok, activity} = CommonAPI.post(target_user, %{"status" => "foobar"}) + {:ok, activity} = CommonAPI.post(target_user, %{status: "foobar"}) [target_user: target_user, activity: activity] end diff --git a/test/web/mastodon_api/controllers/scheduled_activity_controller_test.exs b/test/web/mastodon_api/controllers/scheduled_activity_controller_test.exs index f86274d57..1ff871c89 100644 --- a/test/web/mastodon_api/controllers/scheduled_activity_controller_test.exs +++ b/test/web/mastodon_api/controllers/scheduled_activity_controller_test.exs @@ -24,19 +24,19 @@ test "shows scheduled activities" do # min_id conn_res = get(conn, "/api/v1/scheduled_statuses?limit=2&min_id=#{scheduled_activity_id1}") - result = json_response(conn_res, 200) + result = json_response_and_validate_schema(conn_res, 200) assert [%{"id" => ^scheduled_activity_id3}, %{"id" => ^scheduled_activity_id2}] = result # since_id conn_res = get(conn, "/api/v1/scheduled_statuses?limit=2&since_id=#{scheduled_activity_id1}") - result = json_response(conn_res, 200) + result = json_response_and_validate_schema(conn_res, 200) assert [%{"id" => ^scheduled_activity_id4}, %{"id" => ^scheduled_activity_id3}] = result # max_id conn_res = get(conn, "/api/v1/scheduled_statuses?limit=2&max_id=#{scheduled_activity_id4}") - result = json_response(conn_res, 200) + result = json_response_and_validate_schema(conn_res, 200) assert [%{"id" => ^scheduled_activity_id3}, %{"id" => ^scheduled_activity_id2}] = result end @@ -46,12 +46,12 @@ test "shows a scheduled activity" do res_conn = get(conn, "/api/v1/scheduled_statuses/#{scheduled_activity.id}") - assert %{"id" => scheduled_activity_id} = json_response(res_conn, 200) + assert %{"id" => scheduled_activity_id} = json_response_and_validate_schema(res_conn, 200) assert scheduled_activity_id == scheduled_activity.id |> to_string() res_conn = get(conn, "/api/v1/scheduled_statuses/404") - assert %{"error" => "Record not found"} = json_response(res_conn, 404) + assert %{"error" => "Record not found"} = json_response_and_validate_schema(res_conn, 404) end test "updates a scheduled activity" do @@ -74,22 +74,32 @@ test "updates a scheduled activity" do assert job.args == %{"activity_id" => scheduled_activity.id} assert DateTime.truncate(job.scheduled_at, :second) == to_datetime(scheduled_at) - new_scheduled_at = Timex.shift(NaiveDateTime.utc_now(), minutes: 120) + new_scheduled_at = + NaiveDateTime.utc_now() + |> Timex.shift(minutes: 120) + |> Timex.format!("%Y-%m-%dT%H:%M:%S.%fZ", :strftime) res_conn = - put(conn, "/api/v1/scheduled_statuses/#{scheduled_activity.id}", %{ + conn + |> put_req_header("content-type", "application/json") + |> put("/api/v1/scheduled_statuses/#{scheduled_activity.id}", %{ scheduled_at: new_scheduled_at }) - assert %{"scheduled_at" => expected_scheduled_at} = json_response(res_conn, 200) + assert %{"scheduled_at" => expected_scheduled_at} = + json_response_and_validate_schema(res_conn, 200) + assert expected_scheduled_at == Pleroma.Web.CommonAPI.Utils.to_masto_date(new_scheduled_at) job = refresh_record(job) assert DateTime.truncate(job.scheduled_at, :second) == to_datetime(new_scheduled_at) - res_conn = put(conn, "/api/v1/scheduled_statuses/404", %{scheduled_at: new_scheduled_at}) + res_conn = + conn + |> put_req_header("content-type", "application/json") + |> put("/api/v1/scheduled_statuses/404", %{scheduled_at: new_scheduled_at}) - assert %{"error" => "Record not found"} = json_response(res_conn, 404) + assert %{"error" => "Record not found"} = json_response_and_validate_schema(res_conn, 404) end test "deletes a scheduled activity" do @@ -115,7 +125,7 @@ test "deletes a scheduled activity" do |> assign(:user, user) |> delete("/api/v1/scheduled_statuses/#{scheduled_activity.id}") - assert %{} = json_response(res_conn, 200) + assert %{} = json_response_and_validate_schema(res_conn, 200) refute Repo.get(ScheduledActivity, scheduled_activity.id) refute Repo.get(Oban.Job, job.id) @@ -124,6 +134,6 @@ test "deletes a scheduled activity" do |> assign(:user, user) |> delete("/api/v1/scheduled_statuses/#{scheduled_activity.id}") - assert %{"error" => "Record not found"} = json_response(res_conn, 404) + assert %{"error" => "Record not found"} = json_response_and_validate_schema(res_conn, 404) end end diff --git a/test/web/mastodon_api/controllers/search_controller_test.exs b/test/web/mastodon_api/controllers/search_controller_test.exs index 11133ff66..7d0cafccc 100644 --- a/test/web/mastodon_api/controllers/search_controller_test.exs +++ b/test/web/mastodon_api/controllers/search_controller_test.exs @@ -13,7 +13,7 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do import Tesla.Mock import Mock - setup do + setup_all do mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) :ok end @@ -27,8 +27,8 @@ test "it returns empty result if user or status search return undefined error", capture_log(fn -> results = conn - |> get("/api/v2/search", %{"q" => "2hu"}) - |> json_response(200) + |> get("/api/v2/search?q=2hu") + |> json_response_and_validate_schema(200) assert results["accounts"] == [] assert results["statuses"] == [] @@ -42,20 +42,20 @@ test "search", %{conn: conn} do user_two = insert(:user, %{nickname: "shp@shitposter.club"}) user_three = insert(:user, %{nickname: "shp@heldscal.la", name: "I love 2hu"}) - {:ok, activity} = CommonAPI.post(user, %{"status" => "This is about 2hu private 天子"}) + {:ok, activity} = CommonAPI.post(user, %{status: "This is about 2hu private 天子"}) {:ok, _activity} = CommonAPI.post(user, %{ - "status" => "This is about 2hu, but private", - "visibility" => "private" + status: "This is about 2hu, but private", + visibility: "private" }) - {:ok, _} = CommonAPI.post(user_two, %{"status" => "This isn't"}) + {:ok, _} = CommonAPI.post(user_two, %{status: "This isn't"}) results = conn - |> get("/api/v2/search", %{"q" => "2hu #private"}) - |> json_response(200) + |> get("/api/v2/search?#{URI.encode_query(%{q: "2hu #private"})}") + |> json_response_and_validate_schema(200) [account | _] = results["accounts"] assert account["id"] == to_string(user_three.id) @@ -68,8 +68,8 @@ test "search", %{conn: conn} do assert status["id"] == to_string(activity.id) results = - get(conn, "/api/v2/search", %{"q" => "天子"}) - |> json_response(200) + get(conn, "/api/v2/search?q=天子") + |> json_response_and_validate_schema(200) [status] = results["statuses"] assert status["id"] == to_string(activity.id) @@ -80,17 +80,17 @@ test "excludes a blocked users from search results", %{conn: conn} do user_smith = insert(:user, %{nickname: "Agent", name: "I love 2hu"}) user_neo = insert(:user, %{nickname: "Agent Neo", name: "Agent"}) - {:ok, act1} = CommonAPI.post(user, %{"status" => "This is about 2hu private 天子"}) - {:ok, act2} = CommonAPI.post(user_smith, %{"status" => "Agent Smith"}) - {:ok, act3} = CommonAPI.post(user_neo, %{"status" => "Agent Smith"}) + {:ok, act1} = CommonAPI.post(user, %{status: "This is about 2hu private 天子"}) + {:ok, act2} = CommonAPI.post(user_smith, %{status: "Agent Smith"}) + {:ok, act3} = CommonAPI.post(user_neo, %{status: "Agent Smith"}) Pleroma.User.block(user, user_smith) results = conn |> assign(:user, user) |> assign(:token, insert(:oauth_token, user: user, scopes: ["read"])) - |> get("/api/v2/search", %{"q" => "Agent"}) - |> json_response(200) + |> get("/api/v2/search?q=Agent") + |> json_response_and_validate_schema(200) status_ids = Enum.map(results["statuses"], fn g -> g["id"] end) @@ -107,8 +107,8 @@ test "account search", %{conn: conn} do results = conn - |> get("/api/v1/accounts/search", %{"q" => "shp"}) - |> json_response(200) + |> get("/api/v1/accounts/search?q=shp") + |> json_response_and_validate_schema(200) result_ids = for result <- results, do: result["acct"] @@ -117,8 +117,8 @@ test "account search", %{conn: conn} do results = conn - |> get("/api/v1/accounts/search", %{"q" => "2hu"}) - |> json_response(200) + |> get("/api/v1/accounts/search?q=2hu") + |> json_response_and_validate_schema(200) result_ids = for result <- results, do: result["acct"] @@ -130,8 +130,8 @@ test "returns account if query contains a space", %{conn: conn} do results = conn - |> get("/api/v1/accounts/search", %{"q" => "shp@shitposter.club xxx "}) - |> json_response(200) + |> get("/api/v1/accounts/search?q=shp@shitposter.club xxx") + |> json_response_and_validate_schema(200) assert length(results) == 1 end @@ -146,8 +146,8 @@ test "it returns empty result if user or status search return undefined error", capture_log(fn -> results = conn - |> get("/api/v1/search", %{"q" => "2hu"}) - |> json_response(200) + |> get("/api/v1/search?q=2hu") + |> json_response_and_validate_schema(200) assert results["accounts"] == [] assert results["statuses"] == [] @@ -161,20 +161,20 @@ test "search", %{conn: conn} do user_two = insert(:user, %{nickname: "shp@shitposter.club"}) user_three = insert(:user, %{nickname: "shp@heldscal.la", name: "I love 2hu"}) - {:ok, activity} = CommonAPI.post(user, %{"status" => "This is about 2hu"}) + {:ok, activity} = CommonAPI.post(user, %{status: "This is about 2hu"}) {:ok, _activity} = CommonAPI.post(user, %{ - "status" => "This is about 2hu, but private", - "visibility" => "private" + status: "This is about 2hu, but private", + visibility: "private" }) - {:ok, _} = CommonAPI.post(user_two, %{"status" => "This isn't"}) + {:ok, _} = CommonAPI.post(user_two, %{status: "This isn't"}) results = conn - |> get("/api/v1/search", %{"q" => "2hu"}) - |> json_response(200) + |> get("/api/v1/search?q=2hu") + |> json_response_and_validate_schema(200) [account | _] = results["accounts"] assert account["id"] == to_string(user_three.id) @@ -189,13 +189,13 @@ test "search fetches remote statuses and prefers them over other results", %{con capture_log(fn -> {:ok, %{id: activity_id}} = CommonAPI.post(insert(:user), %{ - "status" => "check out https://shitposter.club/notice/2827873" + status: "check out https://shitposter.club/notice/2827873" }) results = conn - |> get("/api/v1/search", %{"q" => "https://shitposter.club/notice/2827873"}) - |> json_response(200) + |> get("/api/v1/search?q=https://shitposter.club/notice/2827873") + |> json_response_and_validate_schema(200) [status, %{"id" => ^activity_id}] = results["statuses"] @@ -207,15 +207,17 @@ test "search fetches remote statuses and prefers them over other results", %{con test "search doesn't show statuses that it shouldn't", %{conn: conn} do {:ok, activity} = CommonAPI.post(insert(:user), %{ - "status" => "This is about 2hu, but private", - "visibility" => "private" + status: "This is about 2hu, but private", + visibility: "private" }) capture_log(fn -> + q = Object.normalize(activity).data["id"] + results = conn - |> get("/api/v1/search", %{"q" => Object.normalize(activity).data["id"]}) - |> json_response(200) + |> get("/api/v1/search?q=#{q}") + |> json_response_and_validate_schema(200) [] = results["statuses"] end) @@ -228,8 +230,8 @@ test "search fetches remote accounts", %{conn: conn} do conn |> assign(:user, user) |> assign(:token, insert(:oauth_token, user: user, scopes: ["read"])) - |> get("/api/v1/search", %{"q" => "mike@osada.macgirvin.com", "resolve" => "true"}) - |> json_response(200) + |> get("/api/v1/search?q=mike@osada.macgirvin.com&resolve=true") + |> json_response_and_validate_schema(200) [account] = results["accounts"] assert account["acct"] == "mike@osada.macgirvin.com" @@ -238,8 +240,8 @@ test "search fetches remote accounts", %{conn: conn} do test "search doesn't fetch remote accounts if resolve is false", %{conn: conn} do results = conn - |> get("/api/v1/search", %{"q" => "mike@osada.macgirvin.com", "resolve" => "false"}) - |> json_response(200) + |> get("/api/v1/search?q=mike@osada.macgirvin.com&resolve=false") + |> json_response_and_validate_schema(200) assert [] == results["accounts"] end @@ -249,21 +251,21 @@ test "search with limit and offset", %{conn: conn} do _user_two = insert(:user, %{nickname: "shp@shitposter.club"}) _user_three = insert(:user, %{nickname: "shp@heldscal.la", name: "I love 2hu"}) - {:ok, _activity1} = CommonAPI.post(user, %{"status" => "This is about 2hu"}) - {:ok, _activity2} = CommonAPI.post(user, %{"status" => "This is also about 2hu"}) + {:ok, _activity1} = CommonAPI.post(user, %{status: "This is about 2hu"}) + {:ok, _activity2} = CommonAPI.post(user, %{status: "This is also about 2hu"}) result = conn - |> get("/api/v1/search", %{"q" => "2hu", "limit" => 1}) + |> get("/api/v1/search?q=2hu&limit=1") - assert results = json_response(result, 200) + assert results = json_response_and_validate_schema(result, 200) assert [%{"id" => activity_id1}] = results["statuses"] assert [_] = results["accounts"] results = conn - |> get("/api/v1/search", %{"q" => "2hu", "limit" => 1, "offset" => 1}) - |> json_response(200) + |> get("/api/v1/search?q=2hu&limit=1&offset=1") + |> json_response_and_validate_schema(200) assert [%{"id" => activity_id2}] = results["statuses"] assert [] = results["accounts"] @@ -275,30 +277,30 @@ test "search returns results only for the given type", %{conn: conn} do user = insert(:user) _user_two = insert(:user, %{nickname: "shp@heldscal.la", name: "I love 2hu"}) - {:ok, _activity} = CommonAPI.post(user, %{"status" => "This is about 2hu"}) + {:ok, _activity} = CommonAPI.post(user, %{status: "This is about 2hu"}) assert %{"statuses" => [_activity], "accounts" => [], "hashtags" => []} = conn - |> get("/api/v1/search", %{"q" => "2hu", "type" => "statuses"}) - |> json_response(200) + |> get("/api/v1/search?q=2hu&type=statuses") + |> json_response_and_validate_schema(200) assert %{"statuses" => [], "accounts" => [_user_two], "hashtags" => []} = conn - |> get("/api/v1/search", %{"q" => "2hu", "type" => "accounts"}) - |> json_response(200) + |> get("/api/v1/search?q=2hu&type=accounts") + |> json_response_and_validate_schema(200) end test "search uses account_id to filter statuses by the author", %{conn: conn} do user = insert(:user, %{nickname: "shp@shitposter.club"}) user_two = insert(:user, %{nickname: "shp@heldscal.la", name: "I love 2hu"}) - {:ok, activity1} = CommonAPI.post(user, %{"status" => "This is about 2hu"}) - {:ok, activity2} = CommonAPI.post(user_two, %{"status" => "This is also about 2hu"}) + {:ok, activity1} = CommonAPI.post(user, %{status: "This is about 2hu"}) + {:ok, activity2} = CommonAPI.post(user_two, %{status: "This is also about 2hu"}) results = conn - |> get("/api/v1/search", %{"q" => "2hu", "account_id" => user.id}) - |> json_response(200) + |> get("/api/v1/search?q=2hu&account_id=#{user.id}") + |> json_response_and_validate_schema(200) assert [%{"id" => activity_id1}] = results["statuses"] assert activity_id1 == activity1.id @@ -306,8 +308,8 @@ test "search uses account_id to filter statuses by the author", %{conn: conn} do results = conn - |> get("/api/v1/search", %{"q" => "2hu", "account_id" => user_two.id}) - |> json_response(200) + |> get("/api/v1/search?q=2hu&account_id=#{user_two.id}") + |> json_response_and_validate_schema(200) assert [%{"id" => activity_id2}] = results["statuses"] assert activity_id2 == activity2.id diff --git a/test/web/mastodon_api/controllers/status_controller_test.exs b/test/web/mastodon_api/controllers/status_controller_test.exs index 85068edd0..700c82e4f 100644 --- a/test/web/mastodon_api/controllers/status_controller_test.exs +++ b/test/web/mastodon_api/controllers/status_controller_test.exs @@ -32,13 +32,14 @@ test "posting a status does not increment reblog_count when relaying", %{conn: c response = conn + |> put_req_header("content-type", "application/json") |> post("api/v1/statuses", %{ "content_type" => "text/plain", "source" => "Pleroma FE", "status" => "Hello world", "visibility" => "public" }) - |> json_response(200) + |> json_response_and_validate_schema(200) assert response["reblogs_count"] == 0 ObanHelpers.perform_all() @@ -46,7 +47,7 @@ test "posting a status does not increment reblog_count when relaying", %{conn: c response = conn |> get("api/v1/statuses/#{response["id"]}", %{}) - |> json_response(200) + |> json_response_and_validate_schema(200) assert response["reblogs_count"] == 0 end @@ -56,11 +57,12 @@ test "posting a status", %{conn: conn} do conn_one = conn + |> put_req_header("content-type", "application/json") |> put_req_header("idempotency-key", idempotency_key) |> post("/api/v1/statuses", %{ "status" => "cofe", "spoiler_text" => "2hu", - "sensitive" => "false" + "sensitive" => "0" }) {:ok, ttl} = Cachex.ttl(:idempotency_cache, idempotency_key) @@ -68,17 +70,18 @@ test "posting a status", %{conn: conn} do assert ttl > :timer.seconds(6 * 60 * 60 - 1) assert %{"content" => "cofe", "id" => id, "spoiler_text" => "2hu", "sensitive" => false} = - json_response(conn_one, 200) + json_response_and_validate_schema(conn_one, 200) assert Activity.get_by_id(id) conn_two = conn + |> put_req_header("content-type", "application/json") |> put_req_header("idempotency-key", idempotency_key) |> post("/api/v1/statuses", %{ "status" => "cofe", "spoiler_text" => "2hu", - "sensitive" => "false" + "sensitive" => 0 }) assert %{"id" => second_id} = json_response(conn_two, 200) @@ -86,13 +89,14 @@ test "posting a status", %{conn: conn} do conn_three = conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/statuses", %{ "status" => "cofe", "spoiler_text" => "2hu", - "sensitive" => "false" + "sensitive" => "False" }) - assert %{"id" => third_id} = json_response(conn_three, 200) + assert %{"id" => third_id} = json_response_and_validate_schema(conn_three, 200) refute id == third_id # An activity that will expire: @@ -101,12 +105,15 @@ test "posting a status", %{conn: conn} do conn_four = conn + |> put_req_header("content-type", "application/json") |> post("api/v1/statuses", %{ "status" => "oolong", "expires_in" => expires_in }) - assert fourth_response = %{"id" => fourth_id} = json_response(conn_four, 200) + assert fourth_response = + %{"id" => fourth_id} = json_response_and_validate_schema(conn_four, 200) + assert activity = Activity.get_by_id(fourth_id) assert expiration = ActivityExpiration.get_by_activity_id(fourth_id) @@ -130,22 +137,24 @@ test "it fails to create a status if `expires_in` is less or equal than an hour" assert %{"error" => "Expiry date is too soon"} = conn + |> put_req_header("content-type", "application/json") |> post("api/v1/statuses", %{ "status" => "oolong", "expires_in" => expires_in }) - |> json_response(422) + |> json_response_and_validate_schema(422) # 30 minutes expires_in = 30 * 60 assert %{"error" => "Expiry date is too soon"} = conn + |> put_req_header("content-type", "application/json") |> post("api/v1/statuses", %{ "status" => "oolong", "expires_in" => expires_in }) - |> json_response(422) + |> json_response_and_validate_schema(422) end test "posting an undefined status with an attachment", %{user: user, conn: conn} do @@ -158,21 +167,24 @@ test "posting an undefined status with an attachment", %{user: user, conn: conn} {:ok, upload} = ActivityPub.upload(file, actor: user.ap_id) conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "media_ids" => [to_string(upload.id)] }) - assert json_response(conn, 200) + assert json_response_and_validate_schema(conn, 200) end test "replying to a status", %{user: user, conn: conn} do - {:ok, replied_to} = CommonAPI.post(user, %{"status" => "cofe"}) + {:ok, replied_to} = CommonAPI.post(user, %{status: "cofe"}) conn = conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/statuses", %{"status" => "xD", "in_reply_to_id" => replied_to.id}) - assert %{"content" => "xD", "id" => id} = json_response(conn, 200) + assert %{"content" => "xD", "id" => id} = json_response_and_validate_schema(conn, 200) activity = Activity.get_by_id(id) @@ -184,43 +196,56 @@ test "replying to a direct message with visibility other than direct", %{ user: user, conn: conn } do - {:ok, replied_to} = CommonAPI.post(user, %{"status" => "suya..", "visibility" => "direct"}) + {:ok, replied_to} = CommonAPI.post(user, %{status: "suya..", visibility: "direct"}) Enum.each(["public", "private", "unlisted"], fn visibility -> conn = conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/statuses", %{ "status" => "@#{user.nickname} hey", "in_reply_to_id" => replied_to.id, "visibility" => visibility }) - assert json_response(conn, 422) == %{"error" => "The message visibility must be direct"} + assert json_response_and_validate_schema(conn, 422) == %{ + "error" => "The message visibility must be direct" + } end) end test "posting a status with an invalid in_reply_to_id", %{conn: conn} do - conn = post(conn, "/api/v1/statuses", %{"status" => "xD", "in_reply_to_id" => ""}) + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{"status" => "xD", "in_reply_to_id" => ""}) - assert %{"content" => "xD", "id" => id} = json_response(conn, 200) + assert %{"content" => "xD", "id" => id} = json_response_and_validate_schema(conn, 200) assert Activity.get_by_id(id) end test "posting a sensitive status", %{conn: conn} do - conn = post(conn, "/api/v1/statuses", %{"status" => "cofe", "sensitive" => true}) + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{"status" => "cofe", "sensitive" => true}) + + assert %{"content" => "cofe", "id" => id, "sensitive" => true} = + json_response_and_validate_schema(conn, 200) - assert %{"content" => "cofe", "id" => id, "sensitive" => true} = json_response(conn, 200) assert Activity.get_by_id(id) end test "posting a fake status", %{conn: conn} do real_conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "status" => "\"Tenshi Eating a Corndog\" is a much discussed concept on /jp/. The significance of it is disputed, so I will focus on one core concept: the symbolism behind it" }) - real_status = json_response(real_conn, 200) + real_status = json_response_and_validate_schema(real_conn, 200) assert real_status assert Object.get_by_ap_id(real_status["uri"]) @@ -234,13 +259,15 @@ test "posting a fake status", %{conn: conn} do |> Kernel.put_in(["pleroma", "conversation_id"], nil) fake_conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "status" => "\"Tenshi Eating a Corndog\" is a much discussed concept on /jp/. The significance of it is disputed, so I will focus on one core concept: the symbolism behind it", "preview" => true }) - fake_status = json_response(fake_conn, 200) + fake_status = json_response_and_validate_schema(fake_conn, 200) assert fake_status refute Object.get_by_ap_id(fake_status["uri"]) @@ -261,11 +288,15 @@ test "posting a status with OGP link preview", %{conn: conn} do Config.put([:rich_media, :enabled], true) conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "status" => "https://example.com/ogp" }) - assert %{"id" => id, "card" => %{"title" => "The Rock"}} = json_response(conn, 200) + assert %{"id" => id, "card" => %{"title" => "The Rock"}} = + json_response_and_validate_schema(conn, 200) + assert Activity.get_by_id(id) end @@ -273,9 +304,12 @@ test "posting a direct status", %{conn: conn} do user2 = insert(:user) content = "direct cofe @#{user2.nickname}" - conn = post(conn, "api/v1/statuses", %{"status" => content, "visibility" => "direct"}) + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("api/v1/statuses", %{"status" => content, "visibility" => "direct"}) - assert %{"id" => id} = response = json_response(conn, 200) + assert %{"id" => id} = response = json_response_and_validate_schema(conn, 200) assert response["visibility"] == "direct" assert response["pleroma"]["direct_conversation_id"] assert activity = Activity.get_by_id(id) @@ -289,32 +323,45 @@ test "posting a direct status", %{conn: conn} do setup do: oauth_access(["write:statuses"]) test "creates a scheduled activity", %{conn: conn} do - scheduled_at = NaiveDateTime.add(NaiveDateTime.utc_now(), :timer.minutes(120), :millisecond) + scheduled_at = + NaiveDateTime.add(NaiveDateTime.utc_now(), :timer.minutes(120), :millisecond) + |> NaiveDateTime.to_iso8601() + |> Kernel.<>("Z") conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "status" => "scheduled", "scheduled_at" => scheduled_at }) - assert %{"scheduled_at" => expected_scheduled_at} = json_response(conn, 200) + assert %{"scheduled_at" => expected_scheduled_at} = + json_response_and_validate_schema(conn, 200) + assert expected_scheduled_at == CommonAPI.Utils.to_masto_date(scheduled_at) assert [] == Repo.all(Activity) end test "ignores nil values", %{conn: conn} do conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "status" => "not scheduled", "scheduled_at" => nil }) - assert result = json_response(conn, 200) + assert result = json_response_and_validate_schema(conn, 200) assert Activity.get_by_id(result["id"]) end test "creates a scheduled activity with a media attachment", %{user: user, conn: conn} do - scheduled_at = NaiveDateTime.add(NaiveDateTime.utc_now(), :timer.minutes(120), :millisecond) + scheduled_at = + NaiveDateTime.utc_now() + |> NaiveDateTime.add(:timer.minutes(120), :millisecond) + |> NaiveDateTime.to_iso8601() + |> Kernel.<>("Z") file = %Plug.Upload{ content_type: "image/jpg", @@ -325,13 +372,17 @@ test "creates a scheduled activity with a media attachment", %{user: user, conn: {:ok, upload} = ActivityPub.upload(file, actor: user.ap_id) conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "media_ids" => [to_string(upload.id)], "status" => "scheduled", "scheduled_at" => scheduled_at }) - assert %{"media_attachments" => [media_attachment]} = json_response(conn, 200) + assert %{"media_attachments" => [media_attachment]} = + json_response_and_validate_schema(conn, 200) + assert %{"type" => "image"} = media_attachment end @@ -339,14 +390,18 @@ test "skips the scheduling and creates the activity if scheduled_at is earlier t %{conn: conn} do scheduled_at = NaiveDateTime.add(NaiveDateTime.utc_now(), :timer.minutes(5) - 1, :millisecond) + |> NaiveDateTime.to_iso8601() + |> Kernel.<>("Z") conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "status" => "not scheduled", "scheduled_at" => scheduled_at }) - assert %{"content" => "not scheduled"} = json_response(conn, 200) + assert %{"content" => "not scheduled"} = json_response_and_validate_schema(conn, 200) assert [] == Repo.all(ScheduledActivity) end @@ -355,14 +410,19 @@ test "returns error when daily user limit is exceeded", %{user: user, conn: conn NaiveDateTime.utc_now() |> NaiveDateTime.add(:timer.minutes(6), :millisecond) |> NaiveDateTime.to_iso8601() + # TODO + |> Kernel.<>("Z") attrs = %{params: %{}, scheduled_at: today} {:ok, _} = ScheduledActivity.create(user, attrs) {:ok, _} = ScheduledActivity.create(user, attrs) - conn = post(conn, "/api/v1/statuses", %{"status" => "scheduled", "scheduled_at" => today}) + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{"status" => "scheduled", "scheduled_at" => today}) - assert %{"error" => "daily limit exceeded"} == json_response(conn, 422) + assert %{"error" => "daily limit exceeded"} == json_response_and_validate_schema(conn, 422) end test "returns error when total user limit is exceeded", %{user: user, conn: conn} do @@ -370,11 +430,13 @@ test "returns error when total user limit is exceeded", %{user: user, conn: conn NaiveDateTime.utc_now() |> NaiveDateTime.add(:timer.minutes(6), :millisecond) |> NaiveDateTime.to_iso8601() + |> Kernel.<>("Z") tomorrow = NaiveDateTime.utc_now() |> NaiveDateTime.add(:timer.hours(36), :millisecond) |> NaiveDateTime.to_iso8601() + |> Kernel.<>("Z") attrs = %{params: %{}, scheduled_at: today} {:ok, _} = ScheduledActivity.create(user, attrs) @@ -382,9 +444,11 @@ test "returns error when total user limit is exceeded", %{user: user, conn: conn {:ok, _} = ScheduledActivity.create(user, %{params: %{}, scheduled_at: tomorrow}) conn = - post(conn, "/api/v1/statuses", %{"status" => "scheduled", "scheduled_at" => tomorrow}) + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{"status" => "scheduled", "scheduled_at" => tomorrow}) - assert %{"error" => "total limit exceeded"} == json_response(conn, 422) + assert %{"error" => "total limit exceeded"} == json_response_and_validate_schema(conn, 422) end end @@ -395,12 +459,17 @@ test "posting a poll", %{conn: conn} do time = NaiveDateTime.utc_now() conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "status" => "Who is the #bestgrill?", - "poll" => %{"options" => ["Rei", "Asuka", "Misato"], "expires_in" => 420} + "poll" => %{ + "options" => ["Rei", "Asuka", "Misato"], + "expires_in" => 420 + } }) - response = json_response(conn, 200) + response = json_response_and_validate_schema(conn, 200) assert Enum.all?(response["poll"]["options"], fn %{"title" => title} -> title in ["Rei", "Asuka", "Misato"] @@ -419,12 +488,14 @@ test "option limit is enforced", %{conn: conn} do limit = Config.get([:instance, :poll_limits, :max_options]) conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "status" => "desu~", "poll" => %{"options" => Enum.map(0..limit, fn _ -> "desu" end), "expires_in" => 1} }) - %{"error" => error} = json_response(conn, 422) + %{"error" => error} = json_response_and_validate_schema(conn, 422) assert error == "Poll can't contain more than #{limit} options" end @@ -432,7 +503,9 @@ test "option character limit is enforced", %{conn: conn} do limit = Config.get([:instance, :poll_limits, :max_option_chars]) conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "status" => "...", "poll" => %{ "options" => [Enum.reduce(0..limit, "", fn _, acc -> acc <> "." end)], @@ -440,7 +513,7 @@ test "option character limit is enforced", %{conn: conn} do } }) - %{"error" => error} = json_response(conn, 422) + %{"error" => error} = json_response_and_validate_schema(conn, 422) assert error == "Poll options cannot be longer than #{limit} characters each" end @@ -448,7 +521,9 @@ test "minimal date limit is enforced", %{conn: conn} do limit = Config.get([:instance, :poll_limits, :min_expiration]) conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "status" => "imagine arbitrary limits", "poll" => %{ "options" => ["this post was made by pleroma gang"], @@ -456,7 +531,7 @@ test "minimal date limit is enforced", %{conn: conn} do } }) - %{"error" => error} = json_response(conn, 422) + %{"error" => error} = json_response_and_validate_schema(conn, 422) assert error == "Expiration date is too soon" end @@ -464,7 +539,9 @@ test "maximum date limit is enforced", %{conn: conn} do limit = Config.get([:instance, :poll_limits, :max_expiration]) conn = - post(conn, "/api/v1/statuses", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses", %{ "status" => "imagine arbitrary limits", "poll" => %{ "options" => ["this post was made by pleroma gang"], @@ -472,7 +549,7 @@ test "maximum date limit is enforced", %{conn: conn} do } }) - %{"error" => error} = json_response(conn, 422) + %{"error" => error} = json_response_and_validate_schema(conn, 422) assert error == "Expiration date is too far in the future" end end @@ -483,7 +560,7 @@ test "get a status" do conn = get(conn, "/api/v1/statuses/#{activity.id}") - assert %{"id" => id} = json_response(conn, 200) + assert %{"id" => id} = json_response_and_validate_schema(conn, 200) assert id == to_string(activity.id) end @@ -503,13 +580,13 @@ defp local_and_remote_activities do test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do res_conn = get(conn, "/api/v1/statuses/#{local.id}") - assert json_response(res_conn, :not_found) == %{ + assert json_response_and_validate_schema(res_conn, :not_found) == %{ "error" => "Record not found" } res_conn = get(conn, "/api/v1/statuses/#{remote.id}") - assert json_response(res_conn, :not_found) == %{ + assert json_response_and_validate_schema(res_conn, :not_found) == %{ "error" => "Record not found" } end @@ -517,10 +594,10 @@ test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} d test "if user is authenticated", %{local: local, remote: remote} do %{conn: conn} = oauth_access(["read"]) res_conn = get(conn, "/api/v1/statuses/#{local.id}") - assert %{"id" => _} = json_response(res_conn, 200) + assert %{"id" => _} = json_response_and_validate_schema(res_conn, 200) res_conn = get(conn, "/api/v1/statuses/#{remote.id}") - assert %{"id" => _} = json_response(res_conn, 200) + assert %{"id" => _} = json_response_and_validate_schema(res_conn, 200) end end @@ -532,21 +609,21 @@ 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/statuses/#{local.id}") - assert json_response(res_conn, :not_found) == %{ + assert json_response_and_validate_schema(res_conn, :not_found) == %{ "error" => "Record not found" } res_conn = get(conn, "/api/v1/statuses/#{remote.id}") - assert %{"id" => _} = json_response(res_conn, 200) + assert %{"id" => _} = json_response_and_validate_schema(res_conn, 200) end test "if user is authenticated", %{local: local, remote: remote} do %{conn: conn} = oauth_access(["read"]) res_conn = get(conn, "/api/v1/statuses/#{local.id}") - assert %{"id" => _} = json_response(res_conn, 200) + assert %{"id" => _} = json_response_and_validate_schema(res_conn, 200) res_conn = get(conn, "/api/v1/statuses/#{remote.id}") - assert %{"id" => _} = json_response(res_conn, 200) + assert %{"id" => _} = json_response_and_validate_schema(res_conn, 200) end end @@ -557,11 +634,11 @@ 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/statuses/#{local.id}") - assert %{"id" => _} = json_response(res_conn, 200) + assert %{"id" => _} = json_response_and_validate_schema(res_conn, 200) res_conn = get(conn, "/api/v1/statuses/#{remote.id}") - assert json_response(res_conn, :not_found) == %{ + assert json_response_and_validate_schema(res_conn, :not_found) == %{ "error" => "Record not found" } end @@ -569,10 +646,10 @@ test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} d test "if user is authenticated", %{local: local, remote: remote} do %{conn: conn} = oauth_access(["read"]) res_conn = get(conn, "/api/v1/statuses/#{local.id}") - assert %{"id" => _} = json_response(res_conn, 200) + assert %{"id" => _} = json_response_and_validate_schema(res_conn, 200) res_conn = get(conn, "/api/v1/statuses/#{remote.id}") - assert %{"id" => _} = json_response(res_conn, 200) + assert %{"id" => _} = json_response_and_validate_schema(res_conn, 200) end end @@ -582,7 +659,7 @@ test "getting a status that doesn't exist returns 404" do conn = get(conn, "/api/v1/statuses/#{String.downcase(activity.id)}") - assert json_response(conn, 404) == %{"error" => "Record not found"} + assert json_response_and_validate_schema(conn, 404) == %{"error" => "Record not found"} end test "get a direct status" do @@ -590,7 +667,7 @@ test "get a direct status" do other_user = insert(:user) {:ok, activity} = - CommonAPI.post(user, %{"status" => "@#{other_user.nickname}", "visibility" => "direct"}) + CommonAPI.post(user, %{status: "@#{other_user.nickname}", visibility: "direct"}) conn = conn @@ -599,7 +676,7 @@ test "get a direct status" do [participation] = Participation.for_user(user) - res = json_response(conn, 200) + res = json_response_and_validate_schema(conn, 200) assert res["pleroma"]["direct_conversation_id"] == participation.id end @@ -611,7 +688,8 @@ test "get statuses by IDs" do query_string = "ids[]=#{id1}&ids[]=#{id2}" conn = get(conn, "/api/v1/statuses/?#{query_string}") - assert [%{"id" => ^id1}, %{"id" => ^id2}] = Enum.sort_by(json_response(conn, :ok), & &1["id"]) + assert [%{"id" => ^id1}, %{"id" => ^id2}] = + Enum.sort_by(json_response_and_validate_schema(conn, :ok), & &1["id"]) end describe "getting statuses by ids with restricted unauthenticated for local and remote" do @@ -622,17 +700,17 @@ test "get statuses by IDs" do setup do: clear_config([:restrict_unauthenticated, :activities, :remote], true) test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do - res_conn = get(conn, "/api/v1/statuses", %{ids: [local.id, remote.id]}) + res_conn = get(conn, "/api/v1/statuses?ids[]=#{local.id}&ids[]=#{remote.id}") - assert json_response(res_conn, 200) == [] + assert json_response_and_validate_schema(res_conn, 200) == [] end test "if user is authenticated", %{local: local, remote: remote} do %{conn: conn} = oauth_access(["read"]) - res_conn = get(conn, "/api/v1/statuses", %{ids: [local.id, remote.id]}) + res_conn = get(conn, "/api/v1/statuses?ids[]=#{local.id}&ids[]=#{remote.id}") - assert length(json_response(res_conn, 200)) == 2 + assert length(json_response_and_validate_schema(res_conn, 200)) == 2 end end @@ -642,18 +720,18 @@ test "if user is authenticated", %{local: local, remote: remote} do setup do: clear_config([:restrict_unauthenticated, :activities, :local], true) test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do - res_conn = get(conn, "/api/v1/statuses", %{ids: [local.id, remote.id]}) + res_conn = get(conn, "/api/v1/statuses?ids[]=#{local.id}&ids[]=#{remote.id}") remote_id = remote.id - assert [%{"id" => ^remote_id}] = json_response(res_conn, 200) + assert [%{"id" => ^remote_id}] = json_response_and_validate_schema(res_conn, 200) end test "if user is authenticated", %{local: local, remote: remote} do %{conn: conn} = oauth_access(["read"]) - res_conn = get(conn, "/api/v1/statuses", %{ids: [local.id, remote.id]}) + res_conn = get(conn, "/api/v1/statuses?ids[]=#{local.id}&ids[]=#{remote.id}") - assert length(json_response(res_conn, 200)) == 2 + assert length(json_response_and_validate_schema(res_conn, 200)) == 2 end end @@ -663,18 +741,18 @@ test "if user is authenticated", %{local: local, remote: remote} do setup do: clear_config([:restrict_unauthenticated, :activities, :remote], true) test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do - res_conn = get(conn, "/api/v1/statuses", %{ids: [local.id, remote.id]}) + res_conn = get(conn, "/api/v1/statuses?ids[]=#{local.id}&ids[]=#{remote.id}") local_id = local.id - assert [%{"id" => ^local_id}] = json_response(res_conn, 200) + assert [%{"id" => ^local_id}] = json_response_and_validate_schema(res_conn, 200) end test "if user is authenticated", %{local: local, remote: remote} do %{conn: conn} = oauth_access(["read"]) - res_conn = get(conn, "/api/v1/statuses", %{ids: [local.id, remote.id]}) + res_conn = get(conn, "/api/v1/statuses?ids[]=#{local.id}&ids[]=#{remote.id}") - assert length(json_response(res_conn, 200)) == 2 + assert length(json_response_and_validate_schema(res_conn, 200)) == 2 end end @@ -688,7 +766,7 @@ test "when you created it" do |> assign(:user, author) |> delete("/api/v1/statuses/#{activity.id}") - assert %{} = json_response(conn, 200) + assert %{} = json_response_and_validate_schema(conn, 200) refute Activity.get_by_id(activity.id) end @@ -702,7 +780,7 @@ test "when it doesn't exist" do |> assign(:user, author) |> delete("/api/v1/statuses/#{String.downcase(activity.id)}") - assert %{"error" => "Record not found"} == json_response(conn, 404) + assert %{"error" => "Record not found"} == json_response_and_validate_schema(conn, 404) end test "when you didn't create it" do @@ -711,7 +789,7 @@ test "when you didn't create it" do conn = delete(conn, "/api/v1/statuses/#{activity.id}") - assert %{"error" => _} = json_response(conn, 403) + assert %{"error" => _} = json_response_and_validate_schema(conn, 403) assert Activity.get_by_id(activity.id) == activity end @@ -728,7 +806,7 @@ test "when you're an admin or moderator", %{conn: conn} do |> assign(:token, insert(:oauth_token, user: admin, scopes: ["write:statuses"])) |> delete("/api/v1/statuses/#{activity1.id}") - assert %{} = json_response(res_conn, 200) + assert %{} = json_response_and_validate_schema(res_conn, 200) res_conn = conn @@ -736,7 +814,7 @@ test "when you're an admin or moderator", %{conn: conn} do |> assign(:token, insert(:oauth_token, user: moderator, scopes: ["write:statuses"])) |> delete("/api/v1/statuses/#{activity2.id}") - assert %{} = json_response(res_conn, 200) + assert %{} = json_response_and_validate_schema(res_conn, 200) refute Activity.get_by_id(activity1.id) refute Activity.get_by_id(activity2.id) @@ -749,12 +827,15 @@ test "when you're an admin or moderator", %{conn: conn} do test "reblogs and returns the reblogged status", %{conn: conn} do activity = insert(:note_activity) - conn = post(conn, "/api/v1/statuses/#{activity.id}/reblog") + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/#{activity.id}/reblog") assert %{ "reblog" => %{"id" => id, "reblogged" => true, "reblogs_count" => 1}, "reblogged" => true - } = json_response(conn, 200) + } = json_response_and_validate_schema(conn, 200) assert to_string(activity.id) == id end @@ -762,21 +843,30 @@ test "reblogs and returns the reblogged status", %{conn: conn} do test "returns 404 if the reblogged status doesn't exist", %{conn: conn} do activity = insert(:note_activity) - conn = post(conn, "/api/v1/statuses/#{String.downcase(activity.id)}/reblog") + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/#{String.downcase(activity.id)}/reblog") - assert %{"error" => "Record not found"} = json_response(conn, 404) + assert %{"error" => "Record not found"} = json_response_and_validate_schema(conn, 404) end test "reblogs privately and returns the reblogged status", %{conn: conn} do activity = insert(:note_activity) - conn = post(conn, "/api/v1/statuses/#{activity.id}/reblog", %{"visibility" => "private"}) + conn = + conn + |> put_req_header("content-type", "application/json") + |> post( + "/api/v1/statuses/#{activity.id}/reblog", + %{"visibility" => "private"} + ) assert %{ "reblog" => %{"id" => id, "reblogged" => true, "reblogs_count" => 1}, "reblogged" => true, "visibility" => "private" - } = json_response(conn, 200) + } = json_response_and_validate_schema(conn, 200) assert to_string(activity.id) == id end @@ -788,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() @@ -802,7 +892,7 @@ test "reblogged status for another user" do "reblogged" => false, "favourited" => false, "bookmarked" => false - } = json_response(conn_res, 200) + } = json_response_and_validate_schema(conn_res, 200) conn_res = build_conn() @@ -815,7 +905,7 @@ test "reblogged status for another user" do "reblogged" => true, "favourited" => true, "bookmarked" => true - } = json_response(conn_res, 200) + } = json_response_and_validate_schema(conn_res, 200) assert to_string(activity.id) == id end @@ -827,19 +917,26 @@ 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 = post(conn, "/api/v1/statuses/#{activity.id}/unreblog") + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/#{activity.id}/unreblog") - assert %{"id" => id, "reblogged" => false, "reblogs_count" => 0} = json_response(conn, 200) + assert %{"id" => id, "reblogged" => false, "reblogs_count" => 0} = + json_response_and_validate_schema(conn, 200) assert to_string(activity.id) == id end test "returns 404 error when activity does not exist", %{conn: conn} do - conn = post(conn, "/api/v1/statuses/foo/unreblog") + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/foo/unreblog") - assert json_response(conn, 404) == %{"error" => "Record not found"} + assert json_response_and_validate_schema(conn, 404) == %{"error" => "Record not found"} end end @@ -849,10 +946,13 @@ test "returns 404 error when activity does not exist", %{conn: conn} do test "favs a status and returns it", %{conn: conn} do activity = insert(:note_activity) - conn = post(conn, "/api/v1/statuses/#{activity.id}/favourite") + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/#{activity.id}/favourite") assert %{"id" => id, "favourites_count" => 1, "favourited" => true} = - json_response(conn, 200) + json_response_and_validate_schema(conn, 200) assert to_string(activity.id) == id end @@ -860,18 +960,23 @@ test "favs a status and returns it", %{conn: conn} do test "favoriting twice will just return 200", %{conn: conn} do activity = insert(:note_activity) - post(conn, "/api/v1/statuses/#{activity.id}/favourite") + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/#{activity.id}/favourite") - assert post(conn, "/api/v1/statuses/#{activity.id}/favourite") - |> json_response(200) + assert conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/#{activity.id}/favourite") + |> json_response_and_validate_schema(200) end test "returns 404 error for a wrong id", %{conn: conn} do conn = conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/statuses/1/favourite") - assert json_response(conn, 404) == %{"error" => "Record not found"} + assert json_response_and_validate_schema(conn, 404) == %{"error" => "Record not found"} end end @@ -883,18 +988,24 @@ test "unfavorites a status and returns it", %{user: user, conn: conn} do {:ok, _} = CommonAPI.favorite(user, activity.id) - conn = post(conn, "/api/v1/statuses/#{activity.id}/unfavourite") + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/#{activity.id}/unfavourite") assert %{"id" => id, "favourites_count" => 0, "favourited" => false} = - json_response(conn, 200) + json_response_and_validate_schema(conn, 200) assert to_string(activity.id) == id end test "returns 404 error for a wrong id", %{conn: conn} do - conn = post(conn, "/api/v1/statuses/1/unfavourite") + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/1/unfavourite") - assert json_response(conn, 404) == %{"error" => "Record not found"} + assert json_response_and_validate_schema(conn, 404) == %{"error" => "Record not found"} end end @@ -902,7 +1013,7 @@ test "returns 404 error for a wrong id", %{conn: conn} do setup do: oauth_access(["write:accounts"]) setup %{user: user} do - {:ok, activity} = CommonAPI.post(user, %{"status" => "HI!!!"}) + {:ok, activity} = CommonAPI.post(user, %{status: "HI!!!"}) %{activity: activity} end @@ -914,21 +1025,25 @@ test "pin status", %{conn: conn, user: user, activity: activity} do assert %{"id" => ^id_str, "pinned" => true} = conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/statuses/#{activity.id}/pin") - |> json_response(200) + |> json_response_and_validate_schema(200) assert [%{"id" => ^id_str, "pinned" => true}] = conn |> get("/api/v1/accounts/#{user.id}/statuses?pinned=true") - |> json_response(200) + |> json_response_and_validate_schema(200) end test "/pin: returns 400 error when activity is not public", %{conn: conn, user: user} do - {:ok, dm} = CommonAPI.post(user, %{"status" => "test", "visibility" => "direct"}) + {:ok, dm} = CommonAPI.post(user, %{status: "test", visibility: "direct"}) - conn = post(conn, "/api/v1/statuses/#{dm.id}/pin") + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/#{dm.id}/pin") - assert json_response(conn, 400) == %{"error" => "Could not pin"} + assert json_response_and_validate_schema(conn, 400) == %{"error" => "Could not pin"} end test "unpin status", %{conn: conn, user: user, activity: activity} do @@ -941,29 +1056,33 @@ test "unpin status", %{conn: conn, user: user, activity: activity} do conn |> assign(:user, user) |> post("/api/v1/statuses/#{activity.id}/unpin") - |> json_response(200) + |> json_response_and_validate_schema(200) assert [] = conn |> get("/api/v1/accounts/#{user.id}/statuses?pinned=true") - |> json_response(200) + |> json_response_and_validate_schema(200) end test "/unpin: returns 400 error when activity is not exist", %{conn: conn} do - conn = post(conn, "/api/v1/statuses/1/unpin") + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/1/unpin") - assert json_response(conn, 400) == %{"error" => "Could not unpin"} + assert json_response_and_validate_schema(conn, 400) == %{"error" => "Could not unpin"} end test "max pinned statuses", %{conn: conn, user: user, activity: activity_one} do - {:ok, activity_two} = CommonAPI.post(user, %{"status" => "HI!!!"}) + {:ok, activity_two} = CommonAPI.post(user, %{status: "HI!!!"}) id_str_one = to_string(activity_one.id) assert %{"id" => ^id_str_one, "pinned" => true} = conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/statuses/#{id_str_one}/pin") - |> json_response(200) + |> json_response_and_validate_schema(200) user = refresh_record(user) @@ -971,7 +1090,7 @@ test "max pinned statuses", %{conn: conn, user: user, activity: activity_one} do conn |> assign(:user, user) |> post("/api/v1/statuses/#{activity_two.id}/pin") - |> json_response(400) + |> json_response_and_validate_schema(400) end end @@ -985,7 +1104,7 @@ test "max pinned statuses", %{conn: conn, user: user, activity: activity_one} do test "returns rich-media card", %{conn: conn, user: user} do Tesla.Mock.mock(fn env -> apply(HttpRequestMock, :request, [env]) end) - {:ok, activity} = CommonAPI.post(user, %{"status" => "https://example.com/ogp"}) + {:ok, activity} = CommonAPI.post(user, %{status: "https://example.com/ogp"}) card_data = %{ "image" => "http://ia.media-imdb.com/images/rock.jpg", @@ -1011,18 +1130,18 @@ test "returns rich-media card", %{conn: conn, user: user} do response = conn |> get("/api/v1/statuses/#{activity.id}/card") - |> json_response(200) + |> json_response_and_validate_schema(200) assert response == card_data # works with private posts {:ok, activity} = - CommonAPI.post(user, %{"status" => "https://example.com/ogp", "visibility" => "direct"}) + CommonAPI.post(user, %{status: "https://example.com/ogp", visibility: "direct"}) response_two = conn |> get("/api/v1/statuses/#{activity.id}/card") - |> json_response(200) + |> json_response_and_validate_schema(200) assert response_two == card_data end @@ -1030,13 +1149,12 @@ test "returns rich-media card", %{conn: conn, user: user} do test "replaces missing description with an empty string", %{conn: conn, user: user} do Tesla.Mock.mock(fn env -> apply(HttpRequestMock, :request, [env]) end) - {:ok, activity} = - CommonAPI.post(user, %{"status" => "https://example.com/ogp-missing-data"}) + {:ok, activity} = CommonAPI.post(user, %{status: "https://example.com/ogp-missing-data"}) response = conn |> get("/api/v1/statuses/#{activity.id}/card") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) assert response == %{ "type" => "link", @@ -1058,41 +1176,47 @@ 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) - {:ok, activity1} = - CommonAPI.post(author, %{ - "status" => "heweoo?" - }) + {:ok, activity1} = CommonAPI.post(author, %{status: "heweoo?"}) + {:ok, activity2} = CommonAPI.post(author, %{status: "heweoo!"}) - {:ok, activity2} = - CommonAPI.post(author, %{ - "status" => "heweoo!" - }) + response1 = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/#{activity1.id}/bookmark") - response1 = post(conn, "/api/v1/statuses/#{activity1.id}/bookmark") + assert json_response_and_validate_schema(response1, 200)["bookmarked"] == true - assert json_response(response1, 200)["bookmarked"] == true + response2 = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/#{activity2.id}/bookmark") - response2 = post(conn, "/api/v1/statuses/#{activity2.id}/bookmark") - - assert json_response(response2, 200)["bookmarked"] == true + assert json_response_and_validate_schema(response2, 200)["bookmarked"] == true bookmarks = get(conn, bookmarks_uri) - assert [json_response(response2, 200), json_response(response1, 200)] == - json_response(bookmarks, 200) + assert [ + json_response_and_validate_schema(response2, 200), + json_response_and_validate_schema(response1, 200) + ] == + json_response_and_validate_schema(bookmarks, 200) - response1 = post(conn, "/api/v1/statuses/#{activity1.id}/unbookmark") + response1 = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/#{activity1.id}/unbookmark") - assert json_response(response1, 200)["bookmarked"] == false + assert json_response_and_validate_schema(response1, 200)["bookmarked"] == false bookmarks = get(conn, bookmarks_uri) - assert [json_response(response2, 200)] == json_response(bookmarks, 200) + assert [json_response_and_validate_schema(response2, 200)] == + json_response_and_validate_schema(bookmarks, 200) end describe "conversation muting" do @@ -1100,7 +1224,7 @@ test "bookmarks" do setup do post_user = insert(:user) - {:ok, activity} = CommonAPI.post(post_user, %{"status" => "HIE"}) + {:ok, activity} = CommonAPI.post(post_user, %{status: "HIE"}) %{activity: activity} end @@ -1109,16 +1233,22 @@ test "mute conversation", %{conn: conn, activity: activity} do assert %{"id" => ^id_str, "muted" => true} = conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/statuses/#{activity.id}/mute") - |> json_response(200) + |> json_response_and_validate_schema(200) end test "cannot mute already muted conversation", %{conn: conn, user: user, activity: activity} do {:ok, _} = CommonAPI.add_mute(user, activity) - conn = post(conn, "/api/v1/statuses/#{activity.id}/mute") + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/statuses/#{activity.id}/mute") - assert json_response(conn, 400) == %{"error" => "conversation is already muted"} + assert json_response_and_validate_schema(conn, 400) == %{ + "error" => "conversation is already muted" + } end test "unmute conversation", %{conn: conn, user: user, activity: activity} do @@ -1130,7 +1260,7 @@ test "unmute conversation", %{conn: conn, user: user, activity: activity} do conn # |> assign(:user, user) |> post("/api/v1/statuses/#{activity.id}/unmute") - |> json_response(200) + |> json_response_and_validate_schema(200) end end @@ -1139,16 +1269,17 @@ test "Repeated posts that are replies incorrectly have in_reply_to_id null", %{c user2 = insert(:user) user3 = insert(:user) - {:ok, replied_to} = CommonAPI.post(user1, %{"status" => "cofe"}) + {:ok, replied_to} = CommonAPI.post(user1, %{status: "cofe"}) # Reply to status from another user conn1 = conn |> assign(:user, user2) |> assign(:token, insert(:oauth_token, user: user2, scopes: ["write:statuses"])) + |> put_req_header("content-type", "application/json") |> post("/api/v1/statuses", %{"status" => "xD", "in_reply_to_id" => replied_to.id}) - assert %{"content" => "xD", "id" => id} = json_response(conn1, 200) + assert %{"content" => "xD", "id" => id} = json_response_and_validate_schema(conn1, 200) activity = Activity.get_by_id_with_object(id) @@ -1160,10 +1291,11 @@ test "Repeated posts that are replies incorrectly have in_reply_to_id null", %{c conn |> assign(:user, user3) |> assign(:token, insert(:oauth_token, user: user3, scopes: ["write:statuses"])) + |> put_req_header("content-type", "application/json") |> post("/api/v1/statuses/#{activity.id}/reblog") assert %{"reblog" => %{"id" => id, "reblogged" => true, "reblogs_count" => 1}} = - json_response(conn2, 200) + json_response_and_validate_schema(conn2, 200) assert to_string(activity.id) == id @@ -1186,7 +1318,7 @@ test "Repeated posts that are replies incorrectly have in_reply_to_id null", %{c setup do: oauth_access(["read:accounts"]) setup %{user: user} do - {:ok, activity} = CommonAPI.post(user, %{"status" => "test"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test"}) %{activity: activity} end @@ -1198,7 +1330,7 @@ test "returns users who have favorited the status", %{conn: conn, activity: acti response = conn |> get("/api/v1/statuses/#{activity.id}/favourited_by") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) [%{"id" => id}] = response @@ -1212,7 +1344,7 @@ test "returns empty array when status has not been favorited yet", %{ response = conn |> get("/api/v1/statuses/#{activity.id}/favourited_by") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) assert Enum.empty?(response) end @@ -1229,7 +1361,7 @@ test "does not return users who have favorited the status but are blocked", %{ response = conn |> get("/api/v1/statuses/#{activity.id}/favourited_by") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) assert Enum.empty?(response) end @@ -1241,7 +1373,7 @@ test "does not fail on an unauthenticated request", %{activity: activity} do response = build_conn() |> get("/api/v1/statuses/#{activity.id}/favourited_by") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) [%{"id" => id}] = response assert id == other_user.id @@ -1252,8 +1384,8 @@ test "requires authentication for private posts", %{user: user} do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "@#{other_user.nickname} wanna get some #cofe together?", - "visibility" => "direct" + status: "@#{other_user.nickname} wanna get some #cofe together?", + visibility: "direct" }) {:ok, _} = CommonAPI.favorite(other_user, activity.id) @@ -1262,7 +1394,7 @@ test "requires authentication for private posts", %{user: user} do build_conn() |> get(favourited_by_url) - |> json_response(404) + |> json_response_and_validate_schema(404) conn = build_conn() @@ -1272,12 +1404,12 @@ test "requires authentication for private posts", %{user: user} do conn |> assign(:token, nil) |> get(favourited_by_url) - |> json_response(404) + |> json_response_and_validate_schema(404) response = conn |> get(favourited_by_url) - |> json_response(200) + |> json_response_and_validate_schema(200) [%{"id" => id}] = response assert id == other_user.id @@ -1288,19 +1420,19 @@ test "requires authentication for private posts", %{user: user} do setup do: oauth_access(["read:accounts"]) setup %{user: user} do - {:ok, activity} = CommonAPI.post(user, %{"status" => "test"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test"}) %{activity: activity} end 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 |> get("/api/v1/statuses/#{activity.id}/reblogged_by") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) [%{"id" => id}] = response @@ -1314,7 +1446,7 @@ test "returns empty array when status has not been reblogged yet", %{ response = conn |> get("/api/v1/statuses/#{activity.id}/reblogged_by") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) assert Enum.empty?(response) end @@ -1326,40 +1458,40 @@ 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 |> get("/api/v1/statuses/#{activity.id}/reblogged_by") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) assert Enum.empty?(response) 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 |> get("/api/v1/statuses/#{activity.id}/reblogged_by") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) assert Enum.empty?(response) end 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() |> get("/api/v1/statuses/#{activity.id}/reblogged_by") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) [%{"id" => id}] = response assert id == other_user.id @@ -1370,20 +1502,20 @@ test "requires authentication for private posts", %{user: user} do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "@#{other_user.nickname} wanna get some #cofe together?", - "visibility" => "direct" + status: "@#{other_user.nickname} wanna get some #cofe together?", + visibility: "direct" }) build_conn() |> get("/api/v1/statuses/#{activity.id}/reblogged_by") - |> json_response(404) + |> json_response_and_validate_schema(404) response = build_conn() |> assign(:user, other_user) |> assign(:token, insert(:oauth_token, user: other_user, scopes: ["read:accounts"])) |> get("/api/v1/statuses/#{activity.id}/reblogged_by") - |> json_response(200) + |> json_response_and_validate_schema(200) assert [] == response end @@ -1392,16 +1524,16 @@ test "requires authentication for private posts", %{user: user} do test "context" do user = insert(:user) - {:ok, %{id: id1}} = CommonAPI.post(user, %{"status" => "1"}) - {:ok, %{id: id2}} = CommonAPI.post(user, %{"status" => "2", "in_reply_to_status_id" => id1}) - {:ok, %{id: id3}} = CommonAPI.post(user, %{"status" => "3", "in_reply_to_status_id" => id2}) - {:ok, %{id: id4}} = CommonAPI.post(user, %{"status" => "4", "in_reply_to_status_id" => id3}) - {:ok, %{id: id5}} = CommonAPI.post(user, %{"status" => "5", "in_reply_to_status_id" => id4}) + {:ok, %{id: id1}} = CommonAPI.post(user, %{status: "1"}) + {:ok, %{id: id2}} = CommonAPI.post(user, %{status: "2", in_reply_to_status_id: id1}) + {:ok, %{id: id3}} = CommonAPI.post(user, %{status: "3", in_reply_to_status_id: id2}) + {:ok, %{id: id4}} = CommonAPI.post(user, %{status: "4", in_reply_to_status_id: id3}) + {:ok, %{id: id5}} = CommonAPI.post(user, %{status: "5", in_reply_to_status_id: id4}) response = build_conn() |> get("/api/v1/statuses/#{id3}/context") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) assert %{ "ancestors" => [%{"id" => ^id1}, %{"id" => ^id2}], @@ -1413,14 +1545,14 @@ 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, _} = CommonAPI.post(other_user, %{status: "bla"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "traps are happy"}) {:ok, _} = CommonAPI.favorite(user, activity.id) first_conn = get(conn, "/api/v1/favourites") - assert [status] = json_response(first_conn, 200) + assert [status] = json_response_and_validate_schema(first_conn, 200) assert status["id"] == to_string(activity.id) assert [{"link", _link_header}] = @@ -1429,8 +1561,7 @@ test "returns the favorites of a user" do # Honours query params {:ok, second_activity} = CommonAPI.post(other_user, %{ - "status" => - "Trees Are Never Sad Look At Them Every Once In Awhile They're Quite Beautiful." + status: "Trees Are Never Sad Look At Them Every Once In Awhile They're Quite Beautiful." }) {:ok, _} = CommonAPI.favorite(user, second_activity.id) @@ -1439,17 +1570,17 @@ test "returns the favorites of a user" do second_conn = get(conn, "/api/v1/favourites?since_id=#{last_like}") - assert [second_status] = json_response(second_conn, 200) + assert [second_status] = json_response_and_validate_schema(second_conn, 200) assert second_status["id"] == to_string(second_activity.id) third_conn = get(conn, "/api/v1/favourites?limit=0") - assert [] = json_response(third_conn, 200) + assert [] = json_response_and_validate_schema(third_conn, 200) end test "expires_at is nil for another user" do %{conn: conn, user: user} = oauth_access(["read:statuses"]) - {:ok, activity} = CommonAPI.post(user, %{"status" => "foobar", "expires_in" => 1_000_000}) + {:ok, activity} = CommonAPI.post(user, %{status: "foobar", expires_in: 1_000_000}) expires_at = activity.id @@ -1458,11 +1589,15 @@ test "expires_at is nil for another user" do |> NaiveDateTime.to_iso8601() assert %{"pleroma" => %{"expires_at" => ^expires_at}} = - conn |> get("/api/v1/statuses/#{activity.id}") |> json_response(:ok) + conn + |> get("/api/v1/statuses/#{activity.id}") + |> json_response_and_validate_schema(:ok) %{conn: conn} = oauth_access(["read:statuses"]) assert %{"pleroma" => %{"expires_at" => nil}} = - conn |> get("/api/v1/statuses/#{activity.id}") |> json_response(:ok) + conn + |> get("/api/v1/statuses/#{activity.id}") + |> json_response_and_validate_schema(:ok) end end diff --git a/test/web/mastodon_api/controllers/subscription_controller_test.exs b/test/web/mastodon_api/controllers/subscription_controller_test.exs index 5682498c0..4aa260663 100644 --- a/test/web/mastodon_api/controllers/subscription_controller_test.exs +++ b/test/web/mastodon_api/controllers/subscription_controller_test.exs @@ -6,6 +6,7 @@ defmodule Pleroma.Web.MastodonAPI.SubscriptionControllerTest do use Pleroma.Web.ConnCase import Pleroma.Factory + alias Pleroma.Web.Push alias Pleroma.Web.Push.Subscription @@ -27,6 +28,7 @@ defmodule Pleroma.Web.MastodonAPI.SubscriptionControllerTest do build_conn() |> assign(:user, user) |> assign(:token, token) + |> put_req_header("content-type", "application/json") %{conn: conn, user: user, token: token} end @@ -47,8 +49,8 @@ defmacro assert_error_when_disable_push(do: yield) do test "returns error when push disabled ", %{conn: conn} do assert_error_when_disable_push do conn - |> post("/api/v1/push/subscription", %{}) - |> json_response(403) + |> post("/api/v1/push/subscription", %{subscription: @sub}) + |> json_response_and_validate_schema(403) end end @@ -59,7 +61,7 @@ test "successful creation", %{conn: conn} do "data" => %{"alerts" => %{"mention" => true, "test" => true}}, "subscription" => @sub }) - |> json_response(200) + |> json_response_and_validate_schema(200) [subscription] = Pleroma.Repo.all(Subscription) @@ -77,7 +79,7 @@ test "returns error when push disabled ", %{conn: conn} do assert_error_when_disable_push do conn |> get("/api/v1/push/subscription", %{}) - |> json_response(403) + |> json_response_and_validate_schema(403) end end @@ -85,9 +87,9 @@ test "returns error when user hasn't subscription", %{conn: conn} do res = conn |> get("/api/v1/push/subscription", %{}) - |> json_response(404) + |> json_response_and_validate_schema(404) - assert "Not found" == res + assert %{"error" => "Record not found"} == res end test "returns a user subsciption", %{conn: conn, user: user, token: token} do @@ -101,7 +103,7 @@ test "returns a user subsciption", %{conn: conn, user: user, token: token} do res = conn |> get("/api/v1/push/subscription", %{}) - |> json_response(200) + |> json_response_and_validate_schema(200) expect = %{ "alerts" => %{"mention" => true}, @@ -130,7 +132,7 @@ test "returns error when push disabled ", %{conn: conn} do assert_error_when_disable_push do conn |> put("/api/v1/push/subscription", %{data: %{"alerts" => %{"mention" => false}}}) - |> json_response(403) + |> json_response_and_validate_schema(403) end end @@ -140,7 +142,7 @@ test "returns updated subsciption", %{conn: conn, subscription: subscription} do |> put("/api/v1/push/subscription", %{ data: %{"alerts" => %{"mention" => false, "follow" => true}} }) - |> json_response(200) + |> json_response_and_validate_schema(200) expect = %{ "alerts" => %{"follow" => true, "mention" => false}, @@ -158,7 +160,7 @@ test "returns error when push disabled ", %{conn: conn} do assert_error_when_disable_push do conn |> delete("/api/v1/push/subscription", %{}) - |> json_response(403) + |> json_response_and_validate_schema(403) end end @@ -166,9 +168,9 @@ test "returns error when user hasn't subscription", %{conn: conn} do res = conn |> delete("/api/v1/push/subscription", %{}) - |> json_response(404) + |> json_response_and_validate_schema(404) - assert "Not found" == res + assert %{"error" => "Record not found"} == res end test "returns empty result and delete user subsciption", %{ @@ -186,7 +188,7 @@ test "returns empty result and delete user subsciption", %{ res = conn |> delete("/api/v1/push/subscription", %{}) - |> json_response(200) + |> json_response_and_validate_schema(200) assert %{} == res refute Pleroma.Repo.get(Subscription, subscription.id) diff --git a/test/web/mastodon_api/controllers/suggestion_controller_test.exs b/test/web/mastodon_api/controllers/suggestion_controller_test.exs index f120bd0cd..7f08e187c 100644 --- a/test/web/mastodon_api/controllers/suggestion_controller_test.exs +++ b/test/web/mastodon_api/controllers/suggestion_controller_test.exs @@ -11,7 +11,7 @@ test "returns empty result", %{conn: conn} do res = conn |> get("/api/v1/suggestions") - |> json_response(200) + |> json_response_and_validate_schema(200) assert res == [] end diff --git a/test/web/mastodon_api/controllers/timeline_controller_test.exs b/test/web/mastodon_api/controllers/timeline_controller_test.exs index 06efdc901..2375ac8e8 100644 --- a/test/web/mastodon_api/controllers/timeline_controller_test.exs +++ b/test/web/mastodon_api/controllers/timeline_controller_test.exs @@ -20,106 +20,36 @@ 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}"}) + {:ok, _} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) response = conn |> assign(:user, user) |> get("/api/v1/timelines/home") - |> json_response(200) + |> json_response_and_validate_schema(200) assert Enum.all?(response, fn n -> get_in(n, ["account", "pleroma", "relationship"]) == %{} end) end - test "the home timeline", %{user: user, conn: conn} do - uri = "/api/v1/timelines/home?with_relationships=true" - - 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(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(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(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"}) + {:ok, public_activity} = CommonAPI.post(user, %{status: ".", visibility: "public"}) + {:ok, direct_activity} = CommonAPI.post(user, %{status: ".", visibility: "direct"}) - {:ok, unlisted_activity} = - CommonAPI.post(user, %{"status" => ".", "visibility" => "unlisted"}) + {:ok, unlisted_activity} = CommonAPI.post(user, %{status: ".", visibility: "unlisted"}) - {:ok, private_activity} = - CommonAPI.post(user, %{"status" => ".", "visibility" => "private"}) + {:ok, private_activity} = CommonAPI.post(user, %{status: ".", visibility: "private"}) - conn = get(conn, "/api/v1/timelines/home", %{"exclude_visibilities" => ["direct"]}) + conn = get(conn, "/api/v1/timelines/home?exclude_visibilities[]=direct") - assert status_ids = json_response(conn, :ok) |> Enum.map(& &1["id"]) + assert status_ids = json_response_and_validate_schema(conn, :ok) |> Enum.map(& &1["id"]) assert public_activity.id in status_ids assert unlisted_activity.id in status_ids assert private_activity.id in status_ids @@ -132,33 +62,33 @@ test "the home timeline when the direct messages are excluded", %{user: user, co test "the public timeline", %{conn: conn} do following = insert(:user) - {:ok, _activity} = CommonAPI.post(following, %{"status" => "test"}) + {:ok, _activity} = CommonAPI.post(following, %{status: "test"}) _activity = insert(:note_activity, local: false) - conn = get(conn, "/api/v1/timelines/public", %{"local" => "False"}) + conn = get(conn, "/api/v1/timelines/public?local=False") - assert length(json_response(conn, :ok)) == 2 + assert length(json_response_and_validate_schema(conn, :ok)) == 2 - conn = get(build_conn(), "/api/v1/timelines/public", %{"local" => "True"}) + conn = get(build_conn(), "/api/v1/timelines/public?local=True") - assert [%{"content" => "test"}] = json_response(conn, :ok) + assert [%{"content" => "test"}] = json_response_and_validate_schema(conn, :ok) - conn = get(build_conn(), "/api/v1/timelines/public", %{"local" => "1"}) + conn = get(build_conn(), "/api/v1/timelines/public?local=1") - assert [%{"content" => "test"}] = json_response(conn, :ok) + assert [%{"content" => "test"}] = json_response_and_validate_schema(conn, :ok) end test "the public timeline includes only public statuses for an authenticated user" do %{user: user, conn: conn} = oauth_access(["read:statuses"]) - {:ok, _activity} = CommonAPI.post(user, %{"status" => "test"}) - {:ok, _activity} = CommonAPI.post(user, %{"status" => "test", "visibility" => "private"}) - {:ok, _activity} = CommonAPI.post(user, %{"status" => "test", "visibility" => "unlisted"}) - {:ok, _activity} = CommonAPI.post(user, %{"status" => "test", "visibility" => "direct"}) + {:ok, _activity} = CommonAPI.post(user, %{status: "test"}) + {:ok, _activity} = CommonAPI.post(user, %{status: "test", visibility: "private"}) + {:ok, _activity} = CommonAPI.post(user, %{status: "test", visibility: "unlisted"}) + {:ok, _activity} = CommonAPI.post(user, %{status: "test", visibility: "direct"}) res_conn = get(conn, "/api/v1/timelines/public") - assert length(json_response(res_conn, 200)) == 1 + assert length(json_response_and_validate_schema(res_conn, 200)) == 1 end end @@ -176,15 +106,15 @@ defp local_and_remote_activities do setup do: clear_config([:restrict_unauthenticated, :timelines, :federated], true) test "if user is unauthenticated", %{conn: conn} do - res_conn = get(conn, "/api/v1/timelines/public", %{"local" => "true"}) + res_conn = get(conn, "/api/v1/timelines/public?local=true") - assert json_response(res_conn, :unauthorized) == %{ + assert json_response_and_validate_schema(res_conn, :unauthorized) == %{ "error" => "authorization required for timeline view" } - res_conn = get(conn, "/api/v1/timelines/public", %{"local" => "false"}) + res_conn = get(conn, "/api/v1/timelines/public?local=false") - assert json_response(res_conn, :unauthorized) == %{ + assert json_response_and_validate_schema(res_conn, :unauthorized) == %{ "error" => "authorization required for timeline view" } end @@ -192,11 +122,11 @@ test "if user is unauthenticated", %{conn: conn} do test "if user is authenticated" do %{conn: conn} = oauth_access(["read:statuses"]) - res_conn = get(conn, "/api/v1/timelines/public", %{"local" => "true"}) - assert length(json_response(res_conn, 200)) == 1 + res_conn = get(conn, "/api/v1/timelines/public?local=true") + assert length(json_response_and_validate_schema(res_conn, 200)) == 1 - res_conn = get(conn, "/api/v1/timelines/public", %{"local" => "false"}) - assert length(json_response(res_conn, 200)) == 2 + res_conn = get(conn, "/api/v1/timelines/public?local=false") + assert length(json_response_and_validate_schema(res_conn, 200)) == 2 end end @@ -206,24 +136,24 @@ test "if user is authenticated" do setup do: clear_config([:restrict_unauthenticated, :timelines, :local], true) test "if user is unauthenticated", %{conn: conn} do - res_conn = get(conn, "/api/v1/timelines/public", %{"local" => "true"}) + res_conn = get(conn, "/api/v1/timelines/public?local=true") - assert json_response(res_conn, :unauthorized) == %{ + assert json_response_and_validate_schema(res_conn, :unauthorized) == %{ "error" => "authorization required for timeline view" } - res_conn = get(conn, "/api/v1/timelines/public", %{"local" => "false"}) - assert length(json_response(res_conn, 200)) == 2 + res_conn = get(conn, "/api/v1/timelines/public?local=false") + assert length(json_response_and_validate_schema(res_conn, 200)) == 2 end test "if user is authenticated", %{conn: _conn} do %{conn: conn} = oauth_access(["read:statuses"]) - res_conn = get(conn, "/api/v1/timelines/public", %{"local" => "true"}) - assert length(json_response(res_conn, 200)) == 1 + res_conn = get(conn, "/api/v1/timelines/public?local=true") + assert length(json_response_and_validate_schema(res_conn, 200)) == 1 - res_conn = get(conn, "/api/v1/timelines/public", %{"local" => "false"}) - assert length(json_response(res_conn, 200)) == 2 + res_conn = get(conn, "/api/v1/timelines/public?local=false") + assert length(json_response_and_validate_schema(res_conn, 200)) == 2 end end @@ -233,12 +163,12 @@ test "if user is authenticated", %{conn: _conn} do setup do: clear_config([:restrict_unauthenticated, :timelines, :federated], true) test "if user is unauthenticated", %{conn: conn} do - res_conn = get(conn, "/api/v1/timelines/public", %{"local" => "true"}) - assert length(json_response(res_conn, 200)) == 1 + res_conn = get(conn, "/api/v1/timelines/public?local=true") + assert length(json_response_and_validate_schema(res_conn, 200)) == 1 - res_conn = get(conn, "/api/v1/timelines/public", %{"local" => "false"}) + res_conn = get(conn, "/api/v1/timelines/public?local=false") - assert json_response(res_conn, :unauthorized) == %{ + assert json_response_and_validate_schema(res_conn, :unauthorized) == %{ "error" => "authorization required for timeline view" } end @@ -246,11 +176,11 @@ test "if user is unauthenticated", %{conn: conn} do test "if user is authenticated", %{conn: _conn} do %{conn: conn} = oauth_access(["read:statuses"]) - res_conn = get(conn, "/api/v1/timelines/public", %{"local" => "true"}) - assert length(json_response(res_conn, 200)) == 1 + res_conn = get(conn, "/api/v1/timelines/public?local=true") + assert length(json_response_and_validate_schema(res_conn, 200)) == 1 - res_conn = get(conn, "/api/v1/timelines/public", %{"local" => "false"}) - assert length(json_response(res_conn, 200)) == 2 + res_conn = get(conn, "/api/v1/timelines/public?local=false") + assert length(json_response_and_validate_schema(res_conn, 200)) == 2 end end @@ -263,14 +193,14 @@ test "direct timeline", %{conn: conn} do {:ok, direct} = CommonAPI.post(user_one, %{ - "status" => "Hi @#{user_two.nickname}!", - "visibility" => "direct" + status: "Hi @#{user_two.nickname}!", + visibility: "direct" }) {:ok, _follower_only} = CommonAPI.post(user_one, %{ - "status" => "Hi @#{user_two.nickname}!", - "visibility" => "private" + status: "Hi @#{user_two.nickname}!", + visibility: "private" }) conn_user_two = @@ -281,7 +211,7 @@ test "direct timeline", %{conn: conn} do # Only direct should be visible here res_conn = get(conn_user_two, "api/v1/timelines/direct") - [status] = json_response(res_conn, :ok) + assert [status] = json_response_and_validate_schema(res_conn, :ok) assert %{"visibility" => "direct"} = status assert status["url"] != direct.data["id"] @@ -293,33 +223,34 @@ test "direct timeline", %{conn: conn} do |> assign(:token, insert(:oauth_token, user: user_one, scopes: ["read:statuses"])) |> get("api/v1/timelines/direct") - [status] = json_response(res_conn, :ok) + [status] = json_response_and_validate_schema(res_conn, :ok) assert %{"visibility" => "direct"} = status # Both should be visible here res_conn = get(conn_user_two, "api/v1/timelines/home") - [_s1, _s2] = json_response(res_conn, :ok) + [_s1, _s2] = json_response_and_validate_schema(res_conn, :ok) # Test pagination Enum.each(1..20, fn _ -> {:ok, _} = CommonAPI.post(user_one, %{ - "status" => "Hi @#{user_two.nickname}!", - "visibility" => "direct" + status: "Hi @#{user_two.nickname}!", + visibility: "direct" }) end) res_conn = get(conn_user_two, "api/v1/timelines/direct") - statuses = json_response(res_conn, :ok) + statuses = json_response_and_validate_schema(res_conn, :ok) assert length(statuses) == 20 - res_conn = - get(conn_user_two, "api/v1/timelines/direct", %{max_id: List.last(statuses)["id"]}) + max_id = List.last(statuses)["id"] - [status] = json_response(res_conn, :ok) + res_conn = get(conn_user_two, "api/v1/timelines/direct?max_id=#{max_id}") + + assert [status] = json_response_and_validate_schema(res_conn, :ok) assert status["url"] != direct.data["id"] end @@ -332,19 +263,19 @@ test "doesn't include DMs from blocked users" do {:ok, _blocked_direct} = CommonAPI.post(blocked, %{ - "status" => "Hi @#{blocker.nickname}!", - "visibility" => "direct" + status: "Hi @#{blocker.nickname}!", + visibility: "direct" }) {:ok, direct} = CommonAPI.post(other_user, %{ - "status" => "Hi @#{blocker.nickname}!", - "visibility" => "direct" + status: "Hi @#{blocker.nickname}!", + visibility: "direct" }) res_conn = get(conn, "api/v1/timelines/direct") - [status] = json_response(res_conn, :ok) + [status] = json_response_and_validate_schema(res_conn, :ok) assert status["id"] == direct.id end end @@ -354,14 +285,14 @@ test "doesn't include DMs from blocked users" do test "list timeline", %{user: user, conn: conn} do other_user = insert(:user) - {:ok, _activity_one} = CommonAPI.post(user, %{"status" => "Marisa is cute."}) - {:ok, activity_two} = CommonAPI.post(other_user, %{"status" => "Marisa is cute."}) + {:ok, _activity_one} = CommonAPI.post(user, %{status: "Marisa is cute."}) + {:ok, activity_two} = CommonAPI.post(other_user, %{status: "Marisa is cute."}) {:ok, list} = Pleroma.List.create("name", user) {:ok, list} = Pleroma.List.follow(list, other_user) conn = get(conn, "/api/v1/timelines/list/#{list.id}") - assert [%{"id" => id}] = json_response(conn, :ok) + assert [%{"id" => id}] = json_response_and_validate_schema(conn, :ok) assert id == to_string(activity_two.id) end @@ -371,12 +302,12 @@ test "list timeline does not leak non-public statuses for unfollowed users", %{ conn: conn } do other_user = insert(:user) - {:ok, activity_one} = CommonAPI.post(other_user, %{"status" => "Marisa is cute."}) + {:ok, activity_one} = CommonAPI.post(other_user, %{status: "Marisa is cute."}) {:ok, _activity_two} = CommonAPI.post(other_user, %{ - "status" => "Marisa is cute.", - "visibility" => "private" + status: "Marisa is cute.", + visibility: "private" }) {:ok, list} = Pleroma.List.create("name", user) @@ -384,7 +315,7 @@ test "list timeline does not leak non-public statuses for unfollowed users", %{ conn = get(conn, "/api/v1/timelines/list/#{list.id}") - assert [%{"id" => id}] = json_response(conn, :ok) + assert [%{"id" => id}] = json_response_and_validate_schema(conn, :ok) assert id == to_string(activity_one.id) end @@ -397,18 +328,18 @@ test "list timeline does not leak non-public statuses for unfollowed users", %{ test "hashtag timeline", %{conn: conn} do following = insert(:user) - {:ok, activity} = CommonAPI.post(following, %{"status" => "test #2hu"}) + {:ok, activity} = CommonAPI.post(following, %{status: "test #2hu"}) nconn = get(conn, "/api/v1/timelines/tag/2hu") - assert [%{"id" => id}] = json_response(nconn, :ok) + assert [%{"id" => id}] = json_response_and_validate_schema(nconn, :ok) assert id == to_string(activity.id) # works for different capitalization too nconn = get(conn, "/api/v1/timelines/tag/2HU") - assert [%{"id" => id}] = json_response(nconn, :ok) + assert [%{"id" => id}] = json_response_and_validate_schema(nconn, :ok) assert id == to_string(activity.id) end @@ -416,26 +347,25 @@ test "hashtag timeline", %{conn: conn} do test "multi-hashtag timeline", %{conn: conn} do user = insert(:user) - {:ok, activity_test} = CommonAPI.post(user, %{"status" => "#test"}) - {:ok, activity_test1} = CommonAPI.post(user, %{"status" => "#test #test1"}) - {:ok, activity_none} = CommonAPI.post(user, %{"status" => "#test #none"}) + {:ok, activity_test} = CommonAPI.post(user, %{status: "#test"}) + {:ok, activity_test1} = CommonAPI.post(user, %{status: "#test #test1"}) + {:ok, activity_none} = CommonAPI.post(user, %{status: "#test #none"}) - any_test = get(conn, "/api/v1/timelines/tag/test", %{"any" => ["test1"]}) + any_test = get(conn, "/api/v1/timelines/tag/test?any[]=test1") - [status_none, status_test1, status_test] = json_response(any_test, :ok) + [status_none, status_test1, status_test] = json_response_and_validate_schema(any_test, :ok) assert to_string(activity_test.id) == status_test["id"] assert to_string(activity_test1.id) == status_test1["id"] assert to_string(activity_none.id) == status_none["id"] - restricted_test = - get(conn, "/api/v1/timelines/tag/test", %{"all" => ["test1"], "none" => ["none"]}) + restricted_test = get(conn, "/api/v1/timelines/tag/test?all[]=test1&none[]=none") - assert [status_test1] == json_response(restricted_test, :ok) + assert [status_test1] == json_response_and_validate_schema(restricted_test, :ok) - all_test = get(conn, "/api/v1/timelines/tag/test", %{"all" => ["none"]}) + all_test = get(conn, "/api/v1/timelines/tag/test?all[]=none") - assert [status_none] == json_response(all_test, :ok) + assert [status_none] == json_response_and_validate_schema(all_test, :ok) end end end diff --git a/test/web/mastodon_api/mastodon_api_test.exs b/test/web/mastodon_api/mastodon_api_test.exs index cb971806a..a7f9c5205 100644 --- a/test/web/mastodon_api/mastodon_api_test.exs +++ b/test/web/mastodon_api/mastodon_api_test.exs @@ -75,9 +75,9 @@ test "returns notifications for user" do User.subscribe(subscriber, user) - {:ok, status} = CommonAPI.post(user, %{"status" => "Akariiiin"}) + {:ok, status} = CommonAPI.post(user, %{status: "Akariiiin"}) - {:ok, status1} = CommonAPI.post(user, %{"status" => "Magi"}) + {:ok, status1} = CommonAPI.post(user, %{status: "Magi"}) {:ok, [notification]} = Notification.create_notifications(status) {:ok, [notification1]} = Notification.create_notifications(status1) res = MastodonAPI.get_notifications(subscriber) diff --git a/test/web/mastodon_api/views/account_view_test.exs b/test/web/mastodon_api/views/account_view_test.exs index 85fa4f6a2..f91333e5c 100644 --- a/test/web/mastodon_api/views/account_view_test.exs +++ b/test/web/mastodon_api/views/account_view_test.exs @@ -31,7 +31,7 @@ test "Represent a user account" do nickname: "shp@shitposter.club", name: ":karjalanpiirakka: shp", bio: - "valid html. a
b
c
d
f", + "valid html. a
b
c
d
f '&<>\"", inserted_at: ~N[2017-08-15 15:47:06.597036], emoji: %{"karjalanpiirakka" => "/file.png"} }) @@ -46,7 +46,7 @@ test "Represent a user account" do followers_count: 3, following_count: 0, statuses_count: 5, - note: "valid html. a
b
c
d
f", + note: "valid html. a
b
c
d
f '&<>"", url: user.ap_id, avatar: "http://localhost:4001/images/avi.png", avatar_static: "http://localhost:4001/images/avi.png", @@ -54,16 +54,16 @@ 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: [], bot: false, source: %{ - note: "valid html. a\nb\nc\nd\nf", + note: "valid html. a\nb\nc\nd\nf '&<>\"", sensitive: false, pleroma: %{ actor_type: "Person", @@ -93,7 +93,14 @@ test "Represent a user account" do test "Represent the user account for the account owner" do user = insert(:user) - notification_settings = %Pleroma.User.NotificationSetting{} + notification_settings = %{ + followers: true, + follows: true, + non_followers: true, + non_follows: true, + privacy_option: false + } + privacy = user.default_scope assert %{ @@ -295,82 +302,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"}) @@ -452,8 +383,8 @@ test "shows unread_conversation_count only to the account owner" do {:ok, _activity} = CommonAPI.post(other_user, %{ - "status" => "Hey @#{user.nickname}.", - "visibility" => "direct" + status: "Hey @#{user.nickname}.", + visibility: "direct" }) user = User.get_cached_by_ap_id(user.ap_id) @@ -466,6 +397,24 @@ test "shows unread_conversation_count only to the account owner" do :unread_conversation_count ] == 1 end + + test "shows unread_count only to the account owner" do + user = insert(:user) + insert_list(7, :notification, user: user) + other_user = insert(:user) + + user = User.get_cached_by_ap_id(user.ap_id) + + assert AccountView.render( + "show.json", + %{user: user, for: other_user} + )[:pleroma][:unread_notifications_count] == nil + + assert AccountView.render( + "show.json", + %{user: user, for: user} + )[:pleroma][:unread_notifications_count] == 7 + end end describe "follow requests counter" do @@ -542,4 +491,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 dbf3c51e2..6f84366f8 100644 --- a/test/web/mastodon_api/views/conversation_view_test.exs +++ b/test/web/mastodon_api/views/conversation_view_test.exs @@ -16,7 +16,7 @@ test "represents a Mastodon Conversation entity" do other_user = insert(:user) {:ok, activity} = - CommonAPI.post(user, %{"status" => "hey @#{other_user.nickname}", "visibility" => "direct"}) + CommonAPI.post(user, %{status: "hey @#{other_user.nickname}", visibility: "direct"}) [participation] = Participation.for_user_with_last_activity_id(user) diff --git a/test/web/mastodon_api/views/marker_view_test.exs b/test/web/mastodon_api/views/marker_view_test.exs index 893cf8857..48a0a6d33 100644 --- a/test/web/mastodon_api/views/marker_view_test.exs +++ b/test/web/mastodon_api/views/marker_view_test.exs @@ -8,19 +8,21 @@ defmodule Pleroma.Web.MastodonAPI.MarkerViewTest do import Pleroma.Factory test "returns markers" do - marker1 = insert(:marker, timeline: "notifications", last_read_id: "17") + marker1 = insert(:marker, timeline: "notifications", last_read_id: "17", unread_count: 5) marker2 = insert(:marker, timeline: "home", last_read_id: "42") assert MarkerView.render("markers.json", %{markers: [marker1, marker2]}) == %{ "home" => %{ last_read_id: "42", updated_at: NaiveDateTime.to_iso8601(marker2.updated_at), - version: 0 + version: 0, + pleroma: %{unread_count: 0} }, "notifications" => %{ last_read_id: "17", updated_at: NaiveDateTime.to_iso8601(marker1.updated_at), - version: 0 + version: 0, + pleroma: %{unread_count: 5} } } end diff --git a/test/web/mastodon_api/views/notification_view_test.exs b/test/web/mastodon_api/views/notification_view_test.exs index c3ec9dfec..f15be1df1 100644 --- a/test/web/mastodon_api/views/notification_view_test.exs +++ b/test/web/mastodon_api/views/notification_view_test.exs @@ -34,7 +34,7 @@ defp test_notifications_rendering(notifications, user, expected_result) do test "Mention notification" do user = insert(:user) mentioned_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey @#{mentioned_user.nickname}"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hey @#{mentioned_user.nickname}"}) {:ok, [notification]} = Notification.create_notifications(activity) user = User.get_cached_by_id(user.id) @@ -42,7 +42,11 @@ test "Mention notification" do id: to_string(notification.id), pleroma: %{is_seen: 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) } @@ -53,7 +57,7 @@ test "Mention notification" do test "Favourite notification" do user = insert(:user) another_user = insert(:user) - {:ok, create_activity} = CommonAPI.post(user, %{"status" => "hey"}) + {: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) @@ -73,8 +77,8 @@ test "Favourite notification" do 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, create_activity} = CommonAPI.post(user, %{status: "hey"}) + {: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) @@ -155,8 +159,8 @@ test "EmojiReact notification" do user = insert(:user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "#cofe"}) - {:ok, _activity, _} = CommonAPI.react_with_emoji(activity.id, other_user, "☕") + {:ok, activity} = CommonAPI.post(user, %{status: "#cofe"}) + {:ok, _activity} = CommonAPI.react_with_emoji(activity.id, other_user, "☕") activity = Repo.get(Activity, activity.id) diff --git a/test/web/mastodon_api/views/poll_view_test.exs b/test/web/mastodon_api/views/poll_view_test.exs index 63b204387..76672f36c 100644 --- a/test/web/mastodon_api/views/poll_view_test.exs +++ b/test/web/mastodon_api/views/poll_view_test.exs @@ -22,10 +22,10 @@ test "renders a poll" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "Is Tenshi eating a corndog cute?", - "poll" => %{ - "options" => ["absolutely!", "sure", "yes", "why are you even asking?"], - "expires_in" => 20 + status: "Is Tenshi eating a corndog cute?", + poll: %{ + options: ["absolutely!", "sure", "yes", "why are you even asking?"], + expires_in: 20 } }) @@ -62,11 +62,11 @@ test "detects if it is multiple choice" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "Which Mastodon developer is your favourite?", - "poll" => %{ - "options" => ["Gargron", "Eugen"], - "expires_in" => 20, - "multiple" => true + status: "Which Mastodon developer is your favourite?", + poll: %{ + options: ["Gargron", "Eugen"], + expires_in: 20, + multiple: true } }) @@ -91,10 +91,10 @@ test "detects emoji" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "What's with the smug face?", - "poll" => %{ - "options" => [":blank: sip", ":blank::blank: sip", ":blank::blank::blank: sip"], - "expires_in" => 20 + status: "What's with the smug face?", + poll: %{ + options: [":blank: sip", ":blank::blank: sip", ":blank::blank::blank: sip"], + expires_in: 20 } }) @@ -109,11 +109,11 @@ test "detects vote status" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "Which input devices do you use?", - "poll" => %{ - "options" => ["mouse", "trackball", "trackpoint"], - "multiple" => true, - "expires_in" => 20 + status: "Which input devices do you use?", + poll: %{ + options: ["mouse", "trackball", "trackpoint"], + multiple: true, + expires_in: 20 } }) diff --git a/test/web/mastodon_api/views/scheduled_activity_view_test.exs b/test/web/mastodon_api/views/scheduled_activity_view_test.exs index 0c0987593..fbfd873ef 100644 --- a/test/web/mastodon_api/views/scheduled_activity_view_test.exs +++ b/test/web/mastodon_api/views/scheduled_activity_view_test.exs @@ -14,7 +14,7 @@ defmodule Pleroma.Web.MastodonAPI.ScheduledActivityViewTest do test "A scheduled activity with a media attachment" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hi"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hi"}) scheduled_at = NaiveDateTime.utc_now() @@ -47,7 +47,7 @@ test "A scheduled activity with a media attachment" do expected = %{ id: to_string(scheduled_activity.id), media_attachments: - %{"media_ids" => [upload.id]} + %{media_ids: [upload.id]} |> Utils.attachments_from_ids() |> Enum.map(&StatusView.render("attachment.json", %{attachment: &1})), params: %{ diff --git a/test/web/mastodon_api/views/status_view_test.exs b/test/web/mastodon_api/views/status_view_test.exs index 6791c2fb0..5cbadf0fc 100644 --- a/test/web/mastodon_api/views/status_view_test.exs +++ b/test/web/mastodon_api/views/status_view_test.exs @@ -20,6 +20,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do import Pleroma.Factory import Tesla.Mock + import OpenApiSpex.TestAssertions setup do mock(fn env -> apply(HttpRequestMock, :request, [env]) end) @@ -30,14 +31,16 @@ test "has an emoji reaction list" do user = insert(:user) other_user = insert(:user) third_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "dae cofe??"}) + {:ok, activity} = CommonAPI.post(user, %{status: "dae cofe??"}) - {:ok, _, _} = CommonAPI.react_with_emoji(activity.id, user, "☕") - {:ok, _, _} = CommonAPI.react_with_emoji(activity.id, third_user, "🍵") - {:ok, _, _} = CommonAPI.react_with_emoji(activity.id, other_user, "☕") + {:ok, _} = CommonAPI.react_with_emoji(activity.id, user, "☕") + {:ok, _} = CommonAPI.react_with_emoji(activity.id, third_user, "🍵") + {:ok, _} = CommonAPI.react_with_emoji(activity.id, other_user, "☕") activity = Repo.get(Activity, activity.id) status = StatusView.render("show.json", activity: activity) + assert_schema(status, "Status", Pleroma.Web.ApiSpec.spec()) + assert status[:pleroma][:emoji_reactions] == [ %{name: "☕", count: 2, me: false}, %{name: "🍵", count: 1, me: false} @@ -45,6 +48,8 @@ test "has an emoji reaction list" do status = StatusView.render("show.json", activity: activity, for: user) + assert_schema(status, "Status", Pleroma.Web.ApiSpec.spec()) + assert status[:pleroma][:emoji_reactions] == [ %{name: "☕", count: 2, me: true}, %{name: "🍵", count: 1, me: false} @@ -54,7 +59,7 @@ test "has an emoji reaction list" do test "loads and returns the direct conversation id when given the `with_direct_conversation_id` option" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!", "visibility" => "direct"}) + {:ok, activity} = CommonAPI.post(user, %{status: "Hey @shp!", visibility: "direct"}) [participation] = Participation.for_user(user) status = @@ -68,12 +73,13 @@ test "loads and returns the direct conversation id when given the `with_direct_c status = StatusView.render("show.json", activity: activity, for: user) assert status[:pleroma][:direct_conversation_id] == nil + assert_schema(status, "Status", Pleroma.Web.ApiSpec.spec()) end test "returns the direct conversation id when given the `direct_conversation_id` option" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!", "visibility" => "direct"}) + {:ok, activity} = CommonAPI.post(user, %{status: "Hey @shp!", visibility: "direct"}) [participation] = Participation.for_user(user) status = @@ -84,12 +90,13 @@ test "returns the direct conversation id when given the `direct_conversation_id` ) assert status[:pleroma][:direct_conversation_id] == participation.id + assert_schema(status, "Status", Pleroma.Web.ApiSpec.spec()) end test "returns a temporary ap_id based user for activities missing db users" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!", "visibility" => "direct"}) + {:ok, activity} = CommonAPI.post(user, %{status: "Hey @shp!", visibility: "direct"}) Repo.delete(user) Cachex.clear(:user_cache) @@ -119,7 +126,7 @@ test "returns a temporary ap_id based user for activities missing db users" do test "tries to get a user by nickname if fetching by ap_id doesn't work" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!", "visibility" => "direct"}) + {:ok, activity} = CommonAPI.post(user, %{status: "Hey @shp!", visibility: "direct"}) {:ok, user} = user @@ -131,6 +138,7 @@ test "tries to get a user by nickname if fetching by ap_id doesn't work" do result = StatusView.render("show.json", activity: activity) assert result[:account][:id] == to_string(user.id) + assert_schema(result, "Status", Pleroma.Web.ApiSpec.spec()) end test "a note with null content" do @@ -149,6 +157,7 @@ test "a note with null content" do status = StatusView.render("show.json", %{activity: note}) assert status.content == "" + assert_schema(status, "Status", Pleroma.Web.ApiSpec.spec()) end test "a note activity" do @@ -222,6 +231,7 @@ test "a note activity" do } assert status == expected + assert_schema(status, "Status", Pleroma.Web.ApiSpec.spec()) end test "tells if the message is muted for some reason" do @@ -230,13 +240,14 @@ test "tells if the message is muted for some reason" do {:ok, _user_relationships} = User.mute(user, other_user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "test"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "test"}) relationships_opt = UserRelationship.view_relationships_option(user, [other_user]) opts = %{activity: activity} status = StatusView.render("show.json", opts) assert status.muted == false + assert_schema(status, "Status", Pleroma.Web.ApiSpec.spec()) status = StatusView.render("show.json", Map.put(opts, :relationships, relationships_opt)) assert status.muted == false @@ -247,6 +258,7 @@ test "tells if the message is muted for some reason" do status = StatusView.render("show.json", Map.put(for_opts, :relationships, relationships_opt)) assert status.muted == true + assert_schema(status, "Status", Pleroma.Web.ApiSpec.spec()) end test "tells if the message is thread muted" do @@ -255,7 +267,7 @@ test "tells if the message is thread muted" do {:ok, _user_relationships} = User.mute(user, other_user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "test"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "test"}) status = StatusView.render("show.json", %{activity: activity, for: user}) assert status.pleroma.thread_muted == false @@ -270,7 +282,7 @@ test "tells if the message is thread muted" do test "tells if the status is bookmarked" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "Cute girls doing cute things"}) + {:ok, activity} = CommonAPI.post(user, %{status: "Cute girls doing cute things"}) status = StatusView.render("show.json", %{activity: activity}) assert status.bookmarked == false @@ -292,8 +304,7 @@ test "a reply" do note = insert(:note_activity) user = insert(:user) - {:ok, activity} = - CommonAPI.post(user, %{"status" => "he", "in_reply_to_status_id" => note.id}) + {:ok, activity} = CommonAPI.post(user, %{status: "he", in_reply_to_status_id: note.id}) status = StatusView.render("show.json", %{activity: activity}) @@ -308,12 +319,14 @@ test "contains mentions" do user = insert(:user) mentioned = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "hi @#{mentioned.nickname}"}) + {:ok, activity} = CommonAPI.post(user, %{status: "hi @#{mentioned.nickname}"}) status = StatusView.render("show.json", %{activity: activity}) assert status.mentions == Enum.map([mentioned], fn u -> AccountView.render("mention.json", %{user: u}) end) + + assert_schema(status, "Status", Pleroma.Web.ApiSpec.spec()) end test "create mentions from the 'to' field" do @@ -402,11 +415,17 @@ test "attachments" do pleroma: %{mime_type: "image/png"} } + api_spec = Pleroma.Web.ApiSpec.spec() + assert expected == StatusView.render("attachment.json", %{attachment: object}) + assert_schema(expected, "Attachment", api_spec) # If theres a "id", use that instead of the generated one object = Map.put(object, "id", 2) - assert %{id: "2"} = StatusView.render("attachment.json", %{attachment: object}) + result = StatusView.render("attachment.json", %{attachment: object}) + + assert %{id: "2"} = result + assert_schema(result, "Attachment", api_spec) end test "put the url advertised in the Activity in to the url attribute" do @@ -423,13 +442,14 @@ 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}) assert represented[:id] == to_string(reblog.id) assert represented[:reblog][:id] == to_string(activity.id) assert represented[:emojis] == [] + assert_schema(represented, "Status", Pleroma.Web.ApiSpec.spec()) end test "a peertube video" do @@ -446,6 +466,7 @@ test "a peertube video" do assert represented[:id] == to_string(activity.id) assert length(represented[:media_attachments]) == 1 + assert_schema(represented, "Status", Pleroma.Web.ApiSpec.spec()) end test "funkwhale audio" do @@ -555,39 +576,37 @@ 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) {:ok, activity} = CommonAPI.post(user, %{ - "status" => "drink more water" + status: "drink more water" }) 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) {:ok, activity} = CommonAPI.post(user, %{ - "status" => "˙˙ɐʎns" + 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 test "visibility/list" do @@ -595,20 +614,10 @@ test "visibility/list" do {:ok, list} = Pleroma.List.create("foo", user) - {:ok, activity} = - CommonAPI.post(user, %{"status" => "foobar", "visibility" => "list:#{list.id}"}) + {:ok, activity} = CommonAPI.post(user, %{status: "foobar", visibility: "list:#{list.id}"}) status = StatusView.render("show.json", activity: activity) assert status.visibility == "list" end - - test "successfully renders a Listen activity (pleroma extension)" do - listen_activity = insert(:listen) - - status = StatusView.render("listen.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/media_proxy/invalidations/http_test.exs b/test/web/media_proxy/invalidations/http_test.exs new file mode 100644 index 000000000..8a3b4141c --- /dev/null +++ b/test/web/media_proxy/invalidations/http_test.exs @@ -0,0 +1,35 @@ +defmodule Pleroma.Web.MediaProxy.Invalidation.HttpTest do + use ExUnit.Case + alias Pleroma.Web.MediaProxy.Invalidation + + import ExUnit.CaptureLog + import Tesla.Mock + + 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, "success"} + 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, "success"} + 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..1358963ab --- /dev/null +++ b/test/web/media_proxy/invalidations/script_test.exs @@ -0,0 +1,20 @@ +defmodule Pleroma.Web.MediaProxy.Invalidation.ScriptTest do + use ExUnit.Case + alias Pleroma.Web.MediaProxy.Invalidation + + import ExUnit.CaptureLog + + 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}\"" + + assert Invalidation.Script.purge( + ["http://example.com/media/example.jpg"], + %{} + ) == {:error, "not found script path"} + 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/metadata/twitter_card_test.exs b/test/web/metadata/twitter_card_test.exs index 9e9c6853a..10931b5ba 100644 --- a/test/web/metadata/twitter_card_test.exs +++ b/test/web/metadata/twitter_card_test.exs @@ -30,7 +30,7 @@ test "it renders twitter card for user info" do test "it uses summary twittercard if post has no attachment" do user = insert(:user, name: "Jimmy Hendriks", bio: "born 19 March 1994") - {:ok, activity} = CommonAPI.post(user, %{"status" => "HI"}) + {:ok, activity} = CommonAPI.post(user, %{status: "HI"}) note = insert(:note, %{ @@ -56,7 +56,7 @@ test "it uses summary twittercard if post has no attachment" do test "it renders avatar not attachment if post is nsfw and unfurl_nsfw is disabled" do Pleroma.Config.put([Pleroma.Web.Metadata, :unfurl_nsfw], false) user = insert(:user, name: "Jimmy Hendriks", bio: "born 19 March 1994") - {:ok, activity} = CommonAPI.post(user, %{"status" => "HI"}) + {:ok, activity} = CommonAPI.post(user, %{status: "HI"}) note = insert(:note, %{ @@ -100,7 +100,7 @@ test "it renders avatar not attachment if post is nsfw and unfurl_nsfw is disabl test "it renders supported types of attachments and skips unknown types" do user = insert(:user, name: "Jimmy Hendriks", bio: "born 19 March 1994") - {:ok, activity} = CommonAPI.post(user, %{"status" => "HI"}) + {:ok, activity} = CommonAPI.post(user, %{status: "HI"}) note = insert(:note, %{ diff --git a/test/web/mongooseim/mongoose_im_controller_test.exs b/test/web/mongooseim/mongoose_im_controller_test.exs index 1ac2f2c27..5176cde84 100644 --- a/test/web/mongooseim/mongoose_im_controller_test.exs +++ b/test/web/mongooseim/mongoose_im_controller_test.exs @@ -41,13 +41,13 @@ test "/user_exists", %{conn: conn} do end test "/check_password", %{conn: conn} do - user = insert(:user, password_hash: Comeonin.Pbkdf2.hashpwsalt("cool")) + user = insert(:user, password_hash: Pbkdf2.hash_pwd_salt("cool")) _deactivated_user = insert(:user, nickname: "konata", deactivated: true, - password_hash: Comeonin.Pbkdf2.hashpwsalt("cool") + password_hash: Pbkdf2.hash_pwd_salt("cool") ) res = diff --git a/test/web/oauth/ldap_authorization_test.exs b/test/web/oauth/ldap_authorization_test.exs index a8fe8a841..011642c08 100644 --- a/test/web/oauth/ldap_authorization_test.exs +++ b/test/web/oauth/ldap_authorization_test.exs @@ -19,7 +19,7 @@ defmodule Pleroma.Web.OAuth.LDAPAuthorizationTest do @tag @skip test "authorizes the existing user using LDAP credentials" do password = "testpassword" - user = insert(:user, password_hash: Comeonin.Pbkdf2.hashpwsalt(password)) + user = insert(:user, password_hash: Pbkdf2.hash_pwd_salt(password)) app = insert(:oauth_app, scopes: ["read", "write"]) host = Pleroma.Config.get([:ldap, :host]) |> to_charlist @@ -104,7 +104,7 @@ test "creates a new user after successful LDAP authorization" do @tag @skip test "falls back to the default authorization when LDAP is unavailable" do password = "testpassword" - user = insert(:user, password_hash: Comeonin.Pbkdf2.hashpwsalt(password)) + user = insert(:user, password_hash: Pbkdf2.hash_pwd_salt(password)) app = insert(:oauth_app, scopes: ["read", "write"]) host = Pleroma.Config.get([:ldap, :host]) |> to_charlist @@ -148,7 +148,7 @@ test "falls back to the default authorization when LDAP is unavailable" do @tag @skip test "disallow authorization for wrong LDAP credentials" do password = "testpassword" - user = insert(:user, password_hash: Comeonin.Pbkdf2.hashpwsalt(password)) + user = insert(:user, password_hash: Pbkdf2.hash_pwd_salt(password)) app = insert(:oauth_app, scopes: ["read", "write"]) host = Pleroma.Config.get([:ldap, :host]) |> to_charlist diff --git a/test/web/oauth/mfa_controller_test.exs b/test/web/oauth/mfa_controller_test.exs new file mode 100644 index 000000000..3c341facd --- /dev/null +++ b/test/web/oauth/mfa_controller_test.exs @@ -0,0 +1,306 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2018 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.OAuth.MFAControllerTest do + use Pleroma.Web.ConnCase + import Pleroma.Factory + + alias Pleroma.MFA + alias Pleroma.MFA.BackupCodes + alias Pleroma.MFA.TOTP + alias Pleroma.Repo + alias Pleroma.Web.OAuth.Authorization + alias Pleroma.Web.OAuth.OAuthController + + setup %{conn: conn} do + otp_secret = TOTP.generate_secret() + + user = + insert(:user, + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + backup_codes: [Pbkdf2.hash_pwd_salt("test-code")], + totp: %MFA.Settings.TOTP{secret: otp_secret, confirmed: true} + } + ) + + app = insert(:oauth_app) + {:ok, conn: conn, user: user, app: app} + end + + describe "show" do + setup %{conn: conn, user: user, app: app} do + mfa_token = + insert(:mfa_token, + user: user, + authorization: build(:oauth_authorization, app: app, scopes: ["write"]) + ) + + {:ok, conn: conn, mfa_token: mfa_token} + end + + test "GET /oauth/mfa renders mfa forms", %{conn: conn, mfa_token: mfa_token} do + conn = + get( + conn, + "/oauth/mfa", + %{ + "mfa_token" => mfa_token.token, + "state" => "a_state", + "redirect_uri" => "http://localhost:8080/callback" + } + ) + + assert response = html_response(conn, 200) + assert response =~ "Two-factor authentication" + assert response =~ mfa_token.token + assert response =~ "http://localhost:8080/callback" + end + + test "GET /oauth/mfa renders mfa recovery forms", %{conn: conn, mfa_token: mfa_token} do + conn = + get( + conn, + "/oauth/mfa", + %{ + "mfa_token" => mfa_token.token, + "state" => "a_state", + "redirect_uri" => "http://localhost:8080/callback", + "challenge_type" => "recovery" + } + ) + + assert response = html_response(conn, 200) + assert response =~ "Two-factor recovery" + assert response =~ mfa_token.token + assert response =~ "http://localhost:8080/callback" + end + end + + describe "verify" do + setup %{conn: conn, user: user, app: app} do + mfa_token = + insert(:mfa_token, + user: user, + authorization: build(:oauth_authorization, app: app, scopes: ["write"]) + ) + + {:ok, conn: conn, user: user, mfa_token: mfa_token, app: app} + end + + test "POST /oauth/mfa/verify, verify totp code", %{ + conn: conn, + user: user, + mfa_token: mfa_token, + app: app + } do + otp_token = TOTP.generate_token(user.multi_factor_authentication_settings.totp.secret) + + conn = + conn + |> post("/oauth/mfa/verify", %{ + "mfa" => %{ + "mfa_token" => mfa_token.token, + "challenge_type" => "totp", + "code" => otp_token, + "state" => "a_state", + "redirect_uri" => OAuthController.default_redirect_uri(app) + } + }) + + target = redirected_to(conn) + target_url = %URI{URI.parse(target) | query: nil} |> URI.to_string() + query = URI.parse(target).query |> URI.query_decoder() |> Map.new() + assert %{"state" => "a_state", "code" => code} = query + assert target_url == OAuthController.default_redirect_uri(app) + auth = Repo.get_by(Authorization, token: code) + assert auth.scopes == ["write"] + end + + test "POST /oauth/mfa/verify, verify recovery code", %{ + conn: conn, + mfa_token: mfa_token, + app: app + } do + conn = + conn + |> post("/oauth/mfa/verify", %{ + "mfa" => %{ + "mfa_token" => mfa_token.token, + "challenge_type" => "recovery", + "code" => "test-code", + "state" => "a_state", + "redirect_uri" => OAuthController.default_redirect_uri(app) + } + }) + + target = redirected_to(conn) + target_url = %URI{URI.parse(target) | query: nil} |> URI.to_string() + query = URI.parse(target).query |> URI.query_decoder() |> Map.new() + assert %{"state" => "a_state", "code" => code} = query + assert target_url == OAuthController.default_redirect_uri(app) + auth = Repo.get_by(Authorization, token: code) + assert auth.scopes == ["write"] + end + end + + describe "challenge/totp" do + test "returns access token with valid code", %{conn: conn, user: user, app: app} do + otp_token = TOTP.generate_token(user.multi_factor_authentication_settings.totp.secret) + + mfa_token = + insert(:mfa_token, + user: user, + authorization: build(:oauth_authorization, app: app, scopes: ["write"]) + ) + + response = + conn + |> post("/oauth/mfa/challenge", %{ + "mfa_token" => mfa_token.token, + "challenge_type" => "totp", + "code" => otp_token, + "client_id" => app.client_id, + "client_secret" => app.client_secret + }) + |> json_response(:ok) + + ap_id = user.ap_id + + assert match?( + %{ + "access_token" => _, + "expires_in" => 600, + "me" => ^ap_id, + "refresh_token" => _, + "scope" => "write", + "token_type" => "Bearer" + }, + response + ) + end + + test "returns errors when mfa token invalid", %{conn: conn, user: user, app: app} do + otp_token = TOTP.generate_token(user.multi_factor_authentication_settings.totp.secret) + + response = + conn + |> post("/oauth/mfa/challenge", %{ + "mfa_token" => "XXX", + "challenge_type" => "totp", + "code" => otp_token, + "client_id" => app.client_id, + "client_secret" => app.client_secret + }) + |> json_response(400) + + assert response == %{"error" => "Invalid code"} + end + + test "returns error when otp code is invalid", %{conn: conn, user: user, app: app} do + mfa_token = insert(:mfa_token, user: user) + + response = + conn + |> post("/oauth/mfa/challenge", %{ + "mfa_token" => mfa_token.token, + "challenge_type" => "totp", + "code" => "XXX", + "client_id" => app.client_id, + "client_secret" => app.client_secret + }) + |> json_response(400) + + assert response == %{"error" => "Invalid code"} + end + + test "returns error when client credentails is wrong ", %{conn: conn, user: user} do + otp_token = TOTP.generate_token(user.multi_factor_authentication_settings.totp.secret) + mfa_token = insert(:mfa_token, user: user) + + response = + conn + |> post("/oauth/mfa/challenge", %{ + "mfa_token" => mfa_token.token, + "challenge_type" => "totp", + "code" => otp_token, + "client_id" => "xxx", + "client_secret" => "xxx" + }) + |> json_response(400) + + assert response == %{"error" => "Invalid code"} + end + end + + describe "challenge/recovery" do + setup %{conn: conn} do + app = insert(:oauth_app) + {:ok, conn: conn, app: app} + end + + test "returns access token with valid code", %{conn: conn, app: app} do + otp_secret = TOTP.generate_secret() + + [code | _] = backup_codes = BackupCodes.generate() + + hashed_codes = + backup_codes + |> Enum.map(&Pbkdf2.hash_pwd_salt(&1)) + + user = + insert(:user, + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + backup_codes: hashed_codes, + totp: %MFA.Settings.TOTP{secret: otp_secret, confirmed: true} + } + ) + + mfa_token = + insert(:mfa_token, + user: user, + authorization: build(:oauth_authorization, app: app, scopes: ["write"]) + ) + + response = + conn + |> post("/oauth/mfa/challenge", %{ + "mfa_token" => mfa_token.token, + "challenge_type" => "recovery", + "code" => code, + "client_id" => app.client_id, + "client_secret" => app.client_secret + }) + |> json_response(:ok) + + ap_id = user.ap_id + + assert match?( + %{ + "access_token" => _, + "expires_in" => 600, + "me" => ^ap_id, + "refresh_token" => _, + "scope" => "write", + "token_type" => "Bearer" + }, + response + ) + + error_response = + conn + |> post("/oauth/mfa/challenge", %{ + "mfa_token" => mfa_token.token, + "challenge_type" => "recovery", + "code" => code, + "client_id" => app.client_id, + "client_secret" => app.client_secret + }) + |> json_response(400) + + assert error_response == %{"error" => "Invalid code"} + end + end +end diff --git a/test/web/oauth/oauth_controller_test.exs b/test/web/oauth/oauth_controller_test.exs index f2f98d768..d389e4ce0 100644 --- a/test/web/oauth/oauth_controller_test.exs +++ b/test/web/oauth/oauth_controller_test.exs @@ -6,6 +6,8 @@ defmodule Pleroma.Web.OAuth.OAuthControllerTest do use Pleroma.Web.ConnCase import Pleroma.Factory + alias Pleroma.MFA + alias Pleroma.MFA.TOTP alias Pleroma.Repo alias Pleroma.User alias Pleroma.Web.OAuth.Authorization @@ -309,7 +311,7 @@ test "with valid params, POST /oauth/register?op=connect redirects to `redirect_ app: app, conn: conn } do - user = insert(:user, password_hash: Comeonin.Pbkdf2.hashpwsalt("testpassword")) + user = insert(:user, password_hash: Pbkdf2.hash_pwd_salt("testpassword")) registration = insert(:registration, user: nil) redirect_uri = OAuthController.default_redirect_uri(app) @@ -340,7 +342,7 @@ test "with unlisted `redirect_uri`, POST /oauth/register?op=connect results in H app: app, conn: conn } do - user = insert(:user, password_hash: Comeonin.Pbkdf2.hashpwsalt("testpassword")) + user = insert(:user, password_hash: Pbkdf2.hash_pwd_salt("testpassword")) registration = insert(:registration, user: nil) unlisted_redirect_uri = "http://cross-site-request.com" @@ -604,6 +606,41 @@ test "redirects with oauth authorization, " <> end end + test "redirect to on two-factor auth page" do + otp_secret = TOTP.generate_secret() + + user = + insert(:user, + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + totp: %MFA.Settings.TOTP{secret: otp_secret, confirmed: true} + } + ) + + app = insert(:oauth_app, scopes: ["read", "write", "follow"]) + + conn = + build_conn() + |> post("/oauth/authorize", %{ + "authorization" => %{ + "name" => user.nickname, + "password" => "test", + "client_id" => app.client_id, + "redirect_uri" => app.redirect_uris, + "scope" => "read write", + "state" => "statepassed" + } + }) + + result = html_response(conn, 200) + + mfa_token = Repo.get_by(MFA.Token, user_id: user.id) + assert result =~ app.redirect_uris + assert result =~ "statepassed" + assert result =~ mfa_token.token + assert result =~ "Two-factor authentication" + end + test "returns 401 for wrong credentials", %{conn: conn} do user = insert(:user) app = insert(:oauth_app) @@ -713,7 +750,7 @@ test "issues a token for an all-body request" do test "issues a token for `password` grant_type with valid credentials, with full permissions by default" do password = "testpassword" - user = insert(:user, password_hash: Comeonin.Pbkdf2.hashpwsalt(password)) + user = insert(:user, password_hash: Pbkdf2.hash_pwd_salt(password)) app = insert(:oauth_app, scopes: ["read", "write"]) @@ -735,6 +772,46 @@ test "issues a token for `password` grant_type with valid credentials, with full assert token.scopes == app.scopes end + test "issues a mfa token for `password` grant_type, when MFA enabled" do + password = "testpassword" + otp_secret = TOTP.generate_secret() + + user = + insert(:user, + password_hash: Pbkdf2.hash_pwd_salt(password), + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + totp: %MFA.Settings.TOTP{secret: otp_secret, confirmed: true} + } + ) + + app = insert(:oauth_app, scopes: ["read", "write"]) + + response = + build_conn() + |> post("/oauth/token", %{ + "grant_type" => "password", + "username" => user.nickname, + "password" => password, + "client_id" => app.client_id, + "client_secret" => app.client_secret + }) + |> json_response(403) + + assert match?( + %{ + "supported_challenge_types" => "totp", + "mfa_token" => _, + "error" => "mfa_required" + }, + response + ) + + token = Repo.get_by(MFA.Token, token: response["mfa_token"]) + assert token.user_id == user.id + assert token.authorization_id + end + test "issues a token for request with HTTP basic auth client credentials" do user = insert(:user) app = insert(:oauth_app, scopes: ["scope1", "scope2", "scope3"]) @@ -810,7 +887,7 @@ test "rejects token exchange for valid credentials belonging to unconfirmed user password = "testpassword" {:ok, user} = - insert(:user, password_hash: Comeonin.Pbkdf2.hashpwsalt(password)) + insert(:user, password_hash: Pbkdf2.hash_pwd_salt(password)) |> User.confirmation_changeset(need_confirmation: true) |> User.update_and_set_cache() @@ -838,7 +915,7 @@ test "rejects token exchange for valid credentials belonging to deactivated user user = insert(:user, - password_hash: Comeonin.Pbkdf2.hashpwsalt(password), + password_hash: Pbkdf2.hash_pwd_salt(password), deactivated: true ) @@ -866,7 +943,7 @@ test "rejects token exchange for user with password_reset_pending set to true" d user = insert(:user, - password_hash: Comeonin.Pbkdf2.hashpwsalt(password), + password_hash: Pbkdf2.hash_pwd_salt(password), password_reset_pending: true ) @@ -895,7 +972,7 @@ test "rejects token exchange for user with confirmation_pending set to true" do user = insert(:user, - password_hash: Comeonin.Pbkdf2.hashpwsalt(password), + password_hash: Pbkdf2.hash_pwd_salt(password), confirmation_pending: true ) 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/account_controller_test.exs b/test/web/pleroma_api/controllers/account_controller_test.exs index 6b671a667..103997c31 100644 --- a/test/web/pleroma_api/controllers/account_controller_test.exs +++ b/test/web/pleroma_api/controllers/account_controller_test.exs @@ -31,8 +31,28 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do test "resend account confirmation email", %{conn: conn, user: user} do conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/pleroma/accounts/confirmation_resend?email=#{user.email}") - |> json_response(:no_content) + |> json_response_and_validate_schema(:no_content) + + ObanHelpers.perform_all() + + email = Pleroma.Emails.UserEmail.account_confirmation_email(user) + notify_email = Config.get([:instance, :notify_email]) + instance_name = Config.get([:instance, :name]) + + assert_email_sent( + from: {instance_name, notify_email}, + to: {user.name, user.email}, + html_body: email.html_body + ) + end + + test "resend account confirmation email (with nickname)", %{conn: conn, user: user} do + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/pleroma/accounts/confirmation_resend?nickname=#{user.nickname}") + |> json_response_and_validate_schema(:no_content) ObanHelpers.perform_all() @@ -54,7 +74,10 @@ test "resend account confirmation email", %{conn: conn, user: user} do test "user avatar can be set", %{user: user, conn: conn} do avatar_image = File.read!("test/fixtures/avatar_data_uri") - conn = patch(conn, "/api/v1/pleroma/accounts/update_avatar", %{img: avatar_image}) + conn = + conn + |> put_req_header("content-type", "multipart/form-data") + |> patch("/api/v1/pleroma/accounts/update_avatar", %{img: avatar_image}) user = refresh_record(user) @@ -70,17 +93,20 @@ test "user avatar can be set", %{user: user, conn: conn} do ] } = user.avatar - assert %{"url" => _} = json_response(conn, 200) + assert %{"url" => _} = json_response_and_validate_schema(conn, 200) end test "user avatar can be reset", %{user: user, conn: conn} do - conn = patch(conn, "/api/v1/pleroma/accounts/update_avatar", %{img: ""}) + conn = + conn + |> put_req_header("content-type", "multipart/form-data") + |> patch("/api/v1/pleroma/accounts/update_avatar", %{img: ""}) user = User.get_cached_by_id(user.id) assert user.avatar == nil - assert %{"url" => nil} = json_response(conn, 200) + assert %{"url" => nil} = json_response_and_validate_schema(conn, 200) end end @@ -88,21 +114,27 @@ test "user avatar can be reset", %{user: user, conn: conn} do setup do: oauth_access(["write:accounts"]) test "can set profile banner", %{user: user, conn: conn} do - conn = patch(conn, "/api/v1/pleroma/accounts/update_banner", %{"banner" => @image}) + conn = + conn + |> put_req_header("content-type", "multipart/form-data") + |> patch("/api/v1/pleroma/accounts/update_banner", %{"banner" => @image}) user = refresh_record(user) assert user.banner["type"] == "Image" - assert %{"url" => _} = json_response(conn, 200) + assert %{"url" => _} = json_response_and_validate_schema(conn, 200) end test "can reset profile banner", %{user: user, conn: conn} do - conn = patch(conn, "/api/v1/pleroma/accounts/update_banner", %{"banner" => ""}) + conn = + conn + |> put_req_header("content-type", "multipart/form-data") + |> patch("/api/v1/pleroma/accounts/update_banner", %{"banner" => ""}) user = refresh_record(user) assert user.banner == %{} - assert %{"url" => nil} = json_response(conn, 200) + assert %{"url" => nil} = json_response_and_validate_schema(conn, 200) end end @@ -110,19 +142,26 @@ test "can reset profile banner", %{user: user, conn: conn} do setup do: oauth_access(["write:accounts"]) test "background image can be set", %{user: user, conn: conn} do - conn = patch(conn, "/api/v1/pleroma/accounts/update_background", %{"img" => @image}) + conn = + conn + |> put_req_header("content-type", "multipart/form-data") + |> patch("/api/v1/pleroma/accounts/update_background", %{"img" => @image}) user = refresh_record(user) assert user.background["type"] == "Image" - assert %{"url" => _} = json_response(conn, 200) + # assert %{"url" => _} = json_response(conn, 200) + assert %{"url" => _} = json_response_and_validate_schema(conn, 200) end test "background image can be reset", %{user: user, conn: conn} do - conn = patch(conn, "/api/v1/pleroma/accounts/update_background", %{"img" => ""}) + conn = + conn + |> put_req_header("content-type", "multipart/form-data") + |> patch("/api/v1/pleroma/accounts/update_background", %{"img" => ""}) user = refresh_record(user) assert user.background == %{} - assert %{"url" => nil} = json_response(conn, 200) + assert %{"url" => nil} = json_response_and_validate_schema(conn, 200) end end @@ -143,7 +182,7 @@ test "returns list of statuses favorited by specified user", %{ response = conn |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) [like] = response @@ -160,7 +199,7 @@ test "returns favorites for specified user_id when requester is not logged in", response = build_conn() |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") - |> json_response(200) + |> json_response_and_validate_schema(200) assert length(response) == 1 end @@ -171,8 +210,8 @@ test "returns favorited DM only when user is logged in and he is one of recipien } do {:ok, direct} = CommonAPI.post(current_user, %{ - "status" => "Hi @#{user.nickname}!", - "visibility" => "direct" + status: "Hi @#{user.nickname}!", + visibility: "direct" }) CommonAPI.favorite(user, direct.id) @@ -183,7 +222,7 @@ test "returns favorited DM only when user is logged in and he is one of recipien |> assign(:user, u) |> assign(:token, insert(:oauth_token, user: u, scopes: ["read:favourites"])) |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) assert length(response) == 1 end @@ -191,7 +230,7 @@ test "returns favorited DM only when user is logged in and he is one of recipien response = build_conn() |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") - |> json_response(200) + |> json_response_and_validate_schema(200) assert length(response) == 0 end @@ -204,8 +243,8 @@ test "does not return others' favorited DM when user is not one of recipients", {:ok, direct} = CommonAPI.post(user_two, %{ - "status" => "Hi @#{user.nickname}!", - "visibility" => "direct" + status: "Hi @#{user.nickname}!", + visibility: "direct" }) CommonAPI.favorite(user, direct.id) @@ -213,7 +252,7 @@ test "does not return others' favorited DM when user is not one of recipients", response = conn |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) assert Enum.empty?(response) end @@ -233,11 +272,12 @@ test "paginates favorites using since_id and max_id", %{ response = conn - |> get("/api/v1/pleroma/accounts/#{user.id}/favourites", %{ - since_id: third_activity.id, - max_id: seventh_activity.id - }) - |> json_response(:ok) + |> get( + "/api/v1/pleroma/accounts/#{user.id}/favourites?since_id=#{third_activity.id}&max_id=#{ + seventh_activity.id + }" + ) + |> json_response_and_validate_schema(:ok) assert length(response) == 3 refute third_activity in response @@ -256,8 +296,8 @@ test "limits favorites using limit parameter", %{ response = conn - |> get("/api/v1/pleroma/accounts/#{user.id}/favourites", %{limit: "3"}) - |> json_response(:ok) + |> get("/api/v1/pleroma/accounts/#{user.id}/favourites?limit=3") + |> json_response_and_validate_schema(:ok) assert length(response) == 3 end @@ -269,7 +309,7 @@ test "returns empty response when user does not have any favorited statuses", %{ response = conn |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) assert Enum.empty?(response) end @@ -277,7 +317,7 @@ test "returns empty response when user does not have any favorited statuses", %{ test "returns 404 error when specified user is not exist", %{conn: conn} do conn = get(conn, "/api/v1/pleroma/accounts/test/favourites") - assert json_response(conn, 404) == %{"error" => "Record not found"} + assert json_response_and_validate_schema(conn, 404) == %{"error" => "Record not found"} end test "returns 403 error when user has hidden own favorites", %{conn: conn} do @@ -287,7 +327,7 @@ test "returns 403 error when user has hidden own favorites", %{conn: conn} do conn = get(conn, "/api/v1/pleroma/accounts/#{user.id}/favourites") - assert json_response(conn, 403) == %{"error" => "Can't get favorites"} + assert json_response_and_validate_schema(conn, 403) == %{"error" => "Can't get favorites"} end test "hides favorites for new users by default", %{conn: conn} do @@ -298,7 +338,7 @@ test "hides favorites for new users by default", %{conn: conn} do assert user.hide_favorites conn = get(conn, "/api/v1/pleroma/accounts/#{user.id}/favourites") - assert json_response(conn, 403) == %{"error" => "Can't get favorites"} + assert json_response_and_validate_schema(conn, 403) == %{"error" => "Can't get favorites"} end end @@ -312,11 +352,12 @@ test "subscribing / unsubscribing to a user" do |> assign(:user, user) |> post("/api/v1/pleroma/accounts/#{subscription_target.id}/subscribe") - assert %{"id" => _id, "subscribing" => true} = json_response(ret_conn, 200) + assert %{"id" => _id, "subscribing" => true} = + json_response_and_validate_schema(ret_conn, 200) conn = post(conn, "/api/v1/pleroma/accounts/#{subscription_target.id}/unsubscribe") - assert %{"id" => _id, "subscribing" => false} = json_response(conn, 200) + assert %{"id" => _id, "subscribing" => false} = json_response_and_validate_schema(conn, 200) end end @@ -326,7 +367,7 @@ test "returns 404 when subscription_target not found" do conn = post(conn, "/api/v1/pleroma/accounts/target_id/subscribe") - assert %{"error" => "Record not found"} = json_response(conn, 404) + assert %{"error" => "Record not found"} = json_response_and_validate_schema(conn, 404) end end @@ -336,7 +377,7 @@ test "returns 404 when subscription_target not found" do conn = post(conn, "/api/v1/pleroma/accounts/target_id/unsubscribe") - assert %{"error" => "Record not found"} = json_response(conn, 404) + assert %{"error" => "Record not found"} = json_response_and_validate_schema(conn, 404) 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 76% 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..ee3d281a0 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,7 +28,7 @@ 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"} @@ -46,7 +46,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 +60,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 +74,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 +97,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 +105,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 +130,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 +148,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 +159,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 +186,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 +208,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 +217,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 +234,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 +248,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 +271,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 +310,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 @@ -336,8 +336,9 @@ test "for a pack with 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: 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 +356,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 +378,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 +387,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,6 +396,7 @@ 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", filename: "dir/blank.png", @@ -401,17 +405,21 @@ test "don't rewrite old emoji", %{admin_conn: admin_conn} do 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" => "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,6 +429,7 @@ 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", filename: "dir/blank.png", @@ -429,18 +438,22 @@ test "rewrite old emoji with force option", %{admin_conn: admin_conn} do 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" => "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", 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" } @@ -450,6 +463,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,13 +472,14 @@ 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", filename: "dir/blank.png", @@ -473,37 +488,43 @@ test "add file with not loaded pack", %{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 \"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 +533,31 @@ 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" + } 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" + } 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"} refute File.exists?("#{@emoji_path}/test_pack/dir_2/") @@ -546,11 +574,12 @@ 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" } @@ -564,40 +593,51 @@ 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" + } 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=blank2") + |> json_response_and_validate_schema(:bad_request) == %{ + "error" => "Emoji \"blank2\" 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", 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 \"blank2\" 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,7 +645,7 @@ 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") @@ -616,7 +656,7 @@ test "creating and deleting a pack", %{admin_conn: admin_conn} do 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 +669,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 +679,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,15 +707,15 @@ 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") 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"] == %{"blank" => "blank.png"} File.rm!("#{@emoji_path}/test_pack_for_import/pack.json") @@ -686,9 +732,9 @@ 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"] == %{ "blank" => "blank.png", @@ -712,19 +758,23 @@ test "shows pack.json", %{conn: conn} do } = conn |> get("/api/pleroma/emoji/packs/test_pack") - |> json_response(200) + |> json_response_and_validate_schema(200) 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 61a1689b9..000000000 --- a/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs +++ /dev/null @@ -1,296 +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 Pleroma.Web.ConnCase - - alias Pleroma.Conversation.Participation - alias Pleroma.Notification - alias Pleroma.Object - alias Pleroma.Repo - 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, activity, _object} = CommonAPI.react_with_emoji(activity.id, other_user, "☕") - - 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 - - object = Object.normalize(activity) - - 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/controllers/two_factor_authentication_controller_test.exs b/test/web/pleroma_api/controllers/two_factor_authentication_controller_test.exs new file mode 100644 index 000000000..d23d08a00 --- /dev/null +++ b/test/web/pleroma_api/controllers/two_factor_authentication_controller_test.exs @@ -0,0 +1,260 @@ +defmodule Pleroma.Web.PleromaAPI.TwoFactorAuthenticationControllerTest do + use Pleroma.Web.ConnCase + + import Pleroma.Factory + alias Pleroma.MFA.Settings + alias Pleroma.MFA.TOTP + + describe "GET /api/pleroma/accounts/mfa/settings" do + test "returns user mfa settings for new user", %{conn: conn} do + token = insert(:oauth_token, scopes: ["read", "follow"]) + token2 = insert(:oauth_token, scopes: ["write"]) + + assert conn + |> put_req_header("authorization", "Bearer #{token.token}") + |> get("/api/pleroma/accounts/mfa") + |> json_response(:ok) == %{ + "settings" => %{"enabled" => false, "totp" => false} + } + + assert conn + |> put_req_header("authorization", "Bearer #{token2.token}") + |> get("/api/pleroma/accounts/mfa") + |> json_response(403) == %{ + "error" => "Insufficient permissions: read:security." + } + end + + test "returns user mfa settings with enabled totp", %{conn: conn} do + user = + insert(:user, + multi_factor_authentication_settings: %Settings{ + enabled: true, + totp: %Settings.TOTP{secret: "XXX", delivery_type: "app", confirmed: true} + } + ) + + token = insert(:oauth_token, scopes: ["read", "follow"], user: user) + + assert conn + |> put_req_header("authorization", "Bearer #{token.token}") + |> get("/api/pleroma/accounts/mfa") + |> json_response(:ok) == %{ + "settings" => %{"enabled" => true, "totp" => true} + } + end + end + + describe "GET /api/pleroma/accounts/mfa/backup_codes" do + test "returns backup codes", %{conn: conn} do + user = + insert(:user, + multi_factor_authentication_settings: %Settings{ + backup_codes: ["1", "2", "3"], + totp: %Settings.TOTP{secret: "secret"} + } + ) + + token = insert(:oauth_token, scopes: ["write", "follow"], user: user) + token2 = insert(:oauth_token, scopes: ["read"]) + + response = + conn + |> put_req_header("authorization", "Bearer #{token.token}") + |> get("/api/pleroma/accounts/mfa/backup_codes") + |> json_response(:ok) + + assert [<<_::bytes-size(6)>>, <<_::bytes-size(6)>>] = response["codes"] + user = refresh_record(user) + mfa_settings = user.multi_factor_authentication_settings + assert mfa_settings.totp.secret == "secret" + refute mfa_settings.backup_codes == ["1", "2", "3"] + refute mfa_settings.backup_codes == [] + + assert conn + |> put_req_header("authorization", "Bearer #{token2.token}") + |> get("/api/pleroma/accounts/mfa/backup_codes") + |> json_response(403) == %{ + "error" => "Insufficient permissions: write:security." + } + end + end + + describe "GET /api/pleroma/accounts/mfa/setup/totp" do + test "return errors when method is invalid", %{conn: conn} do + user = insert(:user) + token = insert(:oauth_token, scopes: ["write", "follow"], user: user) + + response = + conn + |> put_req_header("authorization", "Bearer #{token.token}") + |> get("/api/pleroma/accounts/mfa/setup/torf") + |> json_response(400) + + assert response == %{"error" => "undefined method"} + end + + test "returns key and provisioning_uri", %{conn: conn} do + user = + insert(:user, + multi_factor_authentication_settings: %Settings{backup_codes: ["1", "2", "3"]} + ) + + token = insert(:oauth_token, scopes: ["write", "follow"], user: user) + token2 = insert(:oauth_token, scopes: ["read"]) + + response = + conn + |> put_req_header("authorization", "Bearer #{token.token}") + |> get("/api/pleroma/accounts/mfa/setup/totp") + |> json_response(:ok) + + user = refresh_record(user) + mfa_settings = user.multi_factor_authentication_settings + secret = mfa_settings.totp.secret + refute mfa_settings.enabled + assert mfa_settings.backup_codes == ["1", "2", "3"] + + assert response == %{ + "key" => secret, + "provisioning_uri" => TOTP.provisioning_uri(secret, "#{user.email}") + } + + assert conn + |> put_req_header("authorization", "Bearer #{token2.token}") + |> get("/api/pleroma/accounts/mfa/setup/totp") + |> json_response(403) == %{ + "error" => "Insufficient permissions: write:security." + } + end + end + + describe "GET /api/pleroma/accounts/mfa/confirm/totp" do + test "returns success result", %{conn: conn} do + secret = TOTP.generate_secret() + code = TOTP.generate_token(secret) + + user = + insert(:user, + multi_factor_authentication_settings: %Settings{ + backup_codes: ["1", "2", "3"], + totp: %Settings.TOTP{secret: secret} + } + ) + + token = insert(:oauth_token, scopes: ["write", "follow"], user: user) + token2 = insert(:oauth_token, scopes: ["read"]) + + assert conn + |> put_req_header("authorization", "Bearer #{token.token}") + |> post("/api/pleroma/accounts/mfa/confirm/totp", %{password: "test", code: code}) + |> json_response(:ok) + + settings = refresh_record(user).multi_factor_authentication_settings + assert settings.enabled + assert settings.totp.secret == secret + assert settings.totp.confirmed + assert settings.backup_codes == ["1", "2", "3"] + + assert conn + |> put_req_header("authorization", "Bearer #{token2.token}") + |> post("/api/pleroma/accounts/mfa/confirm/totp", %{password: "test", code: code}) + |> json_response(403) == %{ + "error" => "Insufficient permissions: write:security." + } + end + + test "returns error if password incorrect", %{conn: conn} do + secret = TOTP.generate_secret() + code = TOTP.generate_token(secret) + + user = + insert(:user, + multi_factor_authentication_settings: %Settings{ + backup_codes: ["1", "2", "3"], + totp: %Settings.TOTP{secret: secret} + } + ) + + token = insert(:oauth_token, scopes: ["write", "follow"], user: user) + + response = + conn + |> put_req_header("authorization", "Bearer #{token.token}") + |> post("/api/pleroma/accounts/mfa/confirm/totp", %{password: "xxx", code: code}) + |> json_response(422) + + settings = refresh_record(user).multi_factor_authentication_settings + refute settings.enabled + refute settings.totp.confirmed + assert settings.backup_codes == ["1", "2", "3"] + assert response == %{"error" => "Invalid password."} + end + + test "returns error if code incorrect", %{conn: conn} do + secret = TOTP.generate_secret() + + user = + insert(:user, + multi_factor_authentication_settings: %Settings{ + backup_codes: ["1", "2", "3"], + totp: %Settings.TOTP{secret: secret} + } + ) + + token = insert(:oauth_token, scopes: ["write", "follow"], user: user) + token2 = insert(:oauth_token, scopes: ["read"]) + + response = + conn + |> put_req_header("authorization", "Bearer #{token.token}") + |> post("/api/pleroma/accounts/mfa/confirm/totp", %{password: "test", code: "code"}) + |> json_response(422) + + settings = refresh_record(user).multi_factor_authentication_settings + refute settings.enabled + refute settings.totp.confirmed + assert settings.backup_codes == ["1", "2", "3"] + assert response == %{"error" => "invalid_token"} + + assert conn + |> put_req_header("authorization", "Bearer #{token2.token}") + |> post("/api/pleroma/accounts/mfa/confirm/totp", %{password: "test", code: "code"}) + |> json_response(403) == %{ + "error" => "Insufficient permissions: write:security." + } + end + end + + describe "DELETE /api/pleroma/accounts/mfa/totp" do + test "returns success result", %{conn: conn} do + user = + insert(:user, + multi_factor_authentication_settings: %Settings{ + backup_codes: ["1", "2", "3"], + totp: %Settings.TOTP{secret: "secret"} + } + ) + + token = insert(:oauth_token, scopes: ["write", "follow"], user: user) + token2 = insert(:oauth_token, scopes: ["read"]) + + assert conn + |> put_req_header("authorization", "Bearer #{token.token}") + |> delete("/api/pleroma/accounts/mfa/totp", %{password: "test"}) + |> json_response(:ok) + + settings = refresh_record(user).multi_factor_authentication_settings + refute settings.enabled + assert settings.totp.secret == nil + refute settings.totp.confirmed + + assert conn + |> put_req_header("authorization", "Bearer #{token2.token}") + |> delete("/api/pleroma/accounts/mfa/totp", %{password: "test"}) + |> json_response(403) == %{ + "error" => "Insufficient permissions: write:security." + } + end + 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/plugs/plug_test.exs b/test/web/plugs/plug_test.exs new file mode 100644 index 000000000..943e484e7 --- /dev/null +++ b/test/web/plugs/plug_test.exs @@ -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.PlugTest do + @moduledoc "Tests for the functionality added via `use Pleroma.Web, :plug`" + + alias Pleroma.Plugs.ExpectAuthenticatedCheckPlug + alias Pleroma.Plugs.ExpectPublicOrAuthenticatedCheckPlug + alias Pleroma.Plugs.PlugHelper + + import Mock + + use Pleroma.Web.ConnCase + + describe "when plug is skipped, " do + setup_with_mocks( + [ + {ExpectPublicOrAuthenticatedCheckPlug, [:passthrough], []} + ], + %{conn: conn} + ) do + conn = ExpectPublicOrAuthenticatedCheckPlug.skip_plug(conn) + %{conn: conn} + end + + test "it neither adds plug to called plugs list nor calls `perform/2`, " <> + "regardless of :if_func / :unless_func options", + %{conn: conn} do + for opts <- [%{}, %{if_func: fn _ -> true end}, %{unless_func: fn _ -> false end}] do + ret_conn = ExpectPublicOrAuthenticatedCheckPlug.call(conn, opts) + + refute called(ExpectPublicOrAuthenticatedCheckPlug.perform(:_, :_)) + refute PlugHelper.plug_called?(ret_conn, ExpectPublicOrAuthenticatedCheckPlug) + end + end + end + + describe "when plug is NOT skipped, " do + setup_with_mocks([{ExpectAuthenticatedCheckPlug, [:passthrough], []}]) do + :ok + end + + test "with no pre-run checks, adds plug to called plugs list and calls `perform/2`", %{ + conn: conn + } do + ret_conn = ExpectAuthenticatedCheckPlug.call(conn, %{}) + + assert called(ExpectAuthenticatedCheckPlug.perform(ret_conn, :_)) + assert PlugHelper.plug_called?(ret_conn, ExpectAuthenticatedCheckPlug) + end + + test "when :if_func option is given, calls the plug only if provided function evals tru-ish", + %{conn: conn} do + ret_conn = ExpectAuthenticatedCheckPlug.call(conn, %{if_func: fn _ -> false end}) + + refute called(ExpectAuthenticatedCheckPlug.perform(:_, :_)) + refute PlugHelper.plug_called?(ret_conn, ExpectAuthenticatedCheckPlug) + + ret_conn = ExpectAuthenticatedCheckPlug.call(conn, %{if_func: fn _ -> true end}) + + assert called(ExpectAuthenticatedCheckPlug.perform(ret_conn, :_)) + assert PlugHelper.plug_called?(ret_conn, ExpectAuthenticatedCheckPlug) + end + + test "if :unless_func option is given, calls the plug only if provided function evals falsy", + %{conn: conn} do + ret_conn = ExpectAuthenticatedCheckPlug.call(conn, %{unless_func: fn _ -> true end}) + + refute called(ExpectAuthenticatedCheckPlug.perform(:_, :_)) + refute PlugHelper.plug_called?(ret_conn, ExpectAuthenticatedCheckPlug) + + ret_conn = ExpectAuthenticatedCheckPlug.call(conn, %{unless_func: fn _ -> false end}) + + assert called(ExpectAuthenticatedCheckPlug.perform(ret_conn, :_)) + assert PlugHelper.plug_called?(ret_conn, ExpectAuthenticatedCheckPlug) + end + + test "allows a plug to be called multiple times (even if it's in called plugs list)", %{ + conn: conn + } do + conn = ExpectAuthenticatedCheckPlug.call(conn, %{an_option: :value1}) + assert called(ExpectAuthenticatedCheckPlug.perform(conn, %{an_option: :value1})) + + assert PlugHelper.plug_called?(conn, ExpectAuthenticatedCheckPlug) + + conn = ExpectAuthenticatedCheckPlug.call(conn, %{an_option: :value2}) + assert called(ExpectAuthenticatedCheckPlug.perform(conn, %{an_option: :value2})) + end + end +end diff --git a/test/web/push/impl_test.exs b/test/web/push/impl_test.exs index b2664bf28..a826b24c9 100644 --- a/test/web/push/impl_test.exs +++ b/test/web/push/impl_test.exs @@ -13,8 +13,8 @@ defmodule Pleroma.Web.Push.ImplTest do import Pleroma.Factory - setup_all do - Tesla.Mock.mock_global(fn + setup do + Tesla.Mock.mock(fn %{method: :post, url: "https://example.com/example/1234"} -> %Tesla.Env{status: 200} @@ -55,7 +55,7 @@ test "performs sending notifications" do data: %{alerts: %{"follow" => true, "mention" => false}} ) - {:ok, activity} = CommonAPI.post(user, %{"status" => " + status: "Lorem ipsum dolor sit amet, consectetur :firefox: adipiscing elit. Fusce sagittis finibus turpis." }) @@ -147,11 +147,11 @@ test "renders title and body for announce activity" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => + status: "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) == @@ -166,7 +166,7 @@ test "renders title and body for like activity" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => + status: "Lorem ipsum dolor sit amet, consectetur :firefox: adipiscing elit. Fusce sagittis finibus turpis." }) @@ -184,8 +184,8 @@ test "renders title for create activity with direct visibility" do {:ok, activity} = CommonAPI.post(user, %{ - "visibility" => "direct", - "status" => "This is just between you and me, pal" + visibility: "direct", + status: "This is just between you and me, pal" }) assert Impl.format_title(%{activity: activity}) == @@ -193,14 +193,14 @@ test "renders title for create activity with direct visibility" do end describe "build_content/3" do - test "returns info content for direct message with enabled privacy option" do + 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}) {:ok, activity} = CommonAPI.post(user, %{ - "visibility" => "direct", - "status" => " "direct", - "status" => + visibility: "direct", + status: "Lorem ipsum dolor sit amet, consectetur :firefox: adipiscing elit. Fusce sagittis finibus turpis." }) @@ -235,6 +260,36 @@ test "returns regular content for direct message with disabled privacy option" d "@Bob: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sagittis fini...", title: "New Direct Message" } + + {:ok, activity} = + CommonAPI.post(user, %{ + visibility: "public", + status: + "Lorem ipsum dolor sit amet, consectetur :firefox: adipiscing elit. Fusce sagittis finibus turpis." + }) + + notif = insert(:notification, user: user2, activity: activity) + + actor = User.get_cached_by_ap_id(notif.activity.data["actor"]) + object = Object.normalize(activity) + + assert Impl.build_content(notif, actor, object) == %{ + body: + "@Bob: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sagittis fini...", + title: "New Mention" + } + + {:ok, activity} = CommonAPI.favorite(user, activity.id) + + notif = insert(:notification, user: user2, activity: activity) + + actor = User.get_cached_by_ap_id(notif.activity.data["actor"]) + object = Object.normalize(activity) + + assert Impl.build_content(notif, actor, object) == %{ + body: "@Bob has favorited your post", + title: "New Favorite" + } end end end diff --git a/test/web/rel_me_test.exs b/test/web/rel_me_test.exs index e05a8863d..65255916d 100644 --- a/test/web/rel_me_test.exs +++ b/test/web/rel_me_test.exs @@ -3,7 +3,7 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.RelMeTest do - use ExUnit.Case, async: true + use ExUnit.Case setup_all do Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) diff --git a/test/web/rich_media/helpers_test.exs b/test/web/rich_media/helpers_test.exs index aa0c5c830..8264a9c41 100644 --- a/test/web/rich_media/helpers_test.exs +++ b/test/web/rich_media/helpers_test.exs @@ -26,8 +26,8 @@ test "refuses to crawl incomplete URLs" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "[test](example.com/ogp)", - "content_type" => "text/markdown" + status: "[test](example.com/ogp)", + content_type: "text/markdown" }) Config.put([:rich_media, :enabled], true) @@ -40,8 +40,8 @@ test "refuses to crawl malformed URLs" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "[test](example.com[]/ogp)", - "content_type" => "text/markdown" + status: "[test](example.com[]/ogp)", + content_type: "text/markdown" }) Config.put([:rich_media, :enabled], true) @@ -54,8 +54,8 @@ test "crawls valid, complete URLs" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "[test](https://example.com/ogp)", - "content_type" => "text/markdown" + status: "[test](https://example.com/ogp)", + content_type: "text/markdown" }) Config.put([:rich_media, :enabled], true) @@ -69,8 +69,8 @@ test "refuses to crawl URLs from posts marked sensitive" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "http://example.com/ogp", - "sensitive" => true + status: "http://example.com/ogp", + sensitive: true }) %Object{} = object = Object.normalize(activity) @@ -87,7 +87,7 @@ test "refuses to crawl URLs from posts tagged NSFW" do {:ok, activity} = CommonAPI.post(user, %{ - "status" => "http://example.com/ogp #nsfw" + status: "http://example.com/ogp #nsfw" }) %Object{} = object = Object.normalize(activity) @@ -103,12 +103,12 @@ test "refuses to crawl URLs of private network from posts" do user = insert(:user) {:ok, activity} = - CommonAPI.post(user, %{"status" => "http://127.0.0.1:4000/notice/9kCP7VNyPJXFOXDrgO"}) + CommonAPI.post(user, %{status: "http://127.0.0.1:4000/notice/9kCP7VNyPJXFOXDrgO"}) - {:ok, activity2} = CommonAPI.post(user, %{"status" => "https://10.111.10.1/notice/9kCP7V"}) - {:ok, activity3} = CommonAPI.post(user, %{"status" => "https://172.16.32.40/notice/9kCP7V"}) - {:ok, activity4} = CommonAPI.post(user, %{"status" => "https://192.168.10.40/notice/9kCP7V"}) - {:ok, activity5} = CommonAPI.post(user, %{"status" => "https://pleroma.local/notice/9kCP7V"}) + {:ok, activity2} = CommonAPI.post(user, %{status: "https://10.111.10.1/notice/9kCP7V"}) + {:ok, activity3} = CommonAPI.post(user, %{status: "https://172.16.32.40/notice/9kCP7V"}) + {:ok, activity4} = CommonAPI.post(user, %{status: "https://192.168.10.40/notice/9kCP7V"}) + {:ok, activity5} = CommonAPI.post(user, %{status: "https://pleroma.local/notice/9kCP7V"}) Config.put([:rich_media, :enabled], true) diff --git a/test/web/static_fe/static_fe_controller_test.exs b/test/web/static_fe/static_fe_controller_test.exs index 430683ea0..a49ab002f 100644 --- a/test/web/static_fe/static_fe_controller_test.exs +++ b/test/web/static_fe/static_fe_controller_test.exs @@ -32,8 +32,8 @@ test "404 when user not found", %{conn: conn} do end test "profile does not include private messages", %{conn: conn, user: user} do - CommonAPI.post(user, %{"status" => "public"}) - CommonAPI.post(user, %{"status" => "private", "visibility" => "private"}) + CommonAPI.post(user, %{status: "public"}) + CommonAPI.post(user, %{status: "private", visibility: "private"}) conn = get(conn, "/users/#{user.nickname}") @@ -44,7 +44,7 @@ test "profile does not include private messages", %{conn: conn, user: user} do end test "pagination", %{conn: conn, user: user} do - Enum.map(1..30, fn i -> CommonAPI.post(user, %{"status" => "test#{i}"}) end) + Enum.map(1..30, fn i -> CommonAPI.post(user, %{status: "test#{i}"}) end) conn = get(conn, "/users/#{user.nickname}") @@ -57,7 +57,7 @@ test "pagination", %{conn: conn, user: user} do end test "pagination, page 2", %{conn: conn, user: user} do - activities = Enum.map(1..30, fn i -> CommonAPI.post(user, %{"status" => "test#{i}"}) end) + activities = Enum.map(1..30, fn i -> CommonAPI.post(user, %{status: "test#{i}"}) end) {:ok, a11} = Enum.at(activities, 11) conn = get(conn, "/users/#{user.nickname}?max_id=#{a11.id}") @@ -77,7 +77,7 @@ test "it requires authentication if instance is NOT federating", %{conn: conn, u describe "notice html" do test "single notice page", %{conn: conn, user: user} do - {:ok, activity} = CommonAPI.post(user, %{"status" => "testing a thing!"}) + {:ok, activity} = CommonAPI.post(user, %{status: "testing a thing!"}) conn = get(conn, "/notice/#{activity.id}") @@ -89,7 +89,7 @@ test "single notice page", %{conn: conn, user: user} do test "filters HTML tags", %{conn: conn} do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => ""}) + {:ok, activity} = CommonAPI.post(user, %{status: ""}) conn = conn @@ -101,11 +101,11 @@ test "filters HTML tags", %{conn: conn} do end test "shows the whole thread", %{conn: conn, user: user} do - {:ok, activity} = CommonAPI.post(user, %{"status" => "space: the final frontier"}) + {:ok, activity} = CommonAPI.post(user, %{status: "space: the final frontier"}) CommonAPI.post(user, %{ - "status" => "these are the voyages or something", - "in_reply_to_status_id" => activity.id + status: "these are the voyages or something", + in_reply_to_status_id: activity.id }) conn = get(conn, "/notice/#{activity.id}") @@ -117,7 +117,7 @@ test "shows the whole thread", %{conn: conn, user: user} do test "redirect by AP object ID", %{conn: conn, user: user} do {:ok, %Activity{data: %{"object" => object_url}}} = - CommonAPI.post(user, %{"status" => "beam me up"}) + CommonAPI.post(user, %{status: "beam me up"}) conn = get(conn, URI.parse(object_url).path) @@ -126,7 +126,7 @@ test "redirect by AP object ID", %{conn: conn, user: user} do test "redirect by activity ID", %{conn: conn, user: user} do {:ok, %Activity{data: %{"id" => id}}} = - CommonAPI.post(user, %{"status" => "I'm a doctor, not a devops!"}) + CommonAPI.post(user, %{status: "I'm a doctor, not a devops!"}) conn = get(conn, URI.parse(id).path) @@ -140,8 +140,7 @@ test "404 when notice not found", %{conn: conn} do end test "404 for private status", %{conn: conn, user: user} do - {:ok, activity} = - CommonAPI.post(user, %{"status" => "don't show me!", "visibility" => "private"}) + {:ok, activity} = CommonAPI.post(user, %{status: "don't show me!", visibility: "private"}) conn = get(conn, "/notice/#{activity.id}") @@ -171,7 +170,7 @@ test "302 for remote cached status", %{conn: conn, user: user} do end test "it requires authentication if instance is NOT federating", %{conn: conn, user: user} do - {:ok, activity} = CommonAPI.post(user, %{"status" => "testing a thing!"}) + {:ok, activity} = CommonAPI.post(user, %{status: "testing a thing!"}) ensure_federating_or_authenticated(conn, "/notice/#{activity.id}", user) end diff --git a/test/web/streamer/ping_test.exs b/test/web/streamer/ping_test.exs deleted file mode 100644 index 5df6c1cc3..000000000 --- a/test/web/streamer/ping_test.exs +++ /dev/null @@ -1,36 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.PingTest do - use Pleroma.DataCase - - import Pleroma.Factory - alias Pleroma.Web.Streamer - - setup do - start_supervised({Streamer.supervisor(), [ping_interval: 30]}) - - :ok - end - - describe "sockets" do - setup do - user = insert(:user) - {:ok, %{user: user}} - end - - test "it sends pings", %{user: user} do - task = - Task.async(fn -> - assert_receive {:text, received_event}, 40 - assert_receive {:text, received_event}, 40 - assert_receive {:text, received_event}, 40 - end) - - Streamer.add_socket("public", %{transport_pid: task.pid, assigns: %{user: user}}) - - Task.await(task) - end - end -end diff --git a/test/web/streamer/state_test.exs b/test/web/streamer/state_test.exs deleted file mode 100644 index a755e75c0..000000000 --- a/test/web/streamer/state_test.exs +++ /dev/null @@ -1,54 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.StateTest do - use Pleroma.DataCase - - import Pleroma.Factory - alias Pleroma.Web.Streamer - alias Pleroma.Web.Streamer.StreamerSocket - - @moduletag needs_streamer: true - - describe "sockets" do - setup do - user = insert(:user) - user2 = insert(:user) - {:ok, %{user: user, user2: user2}} - end - - test "it can add a socket", %{user: user} do - Streamer.add_socket("public", %{transport_pid: 1, assigns: %{user: user}}) - - assert(%{"public" => [%StreamerSocket{transport_pid: 1}]} = Streamer.get_sockets()) - end - - test "it can add multiple sockets per user", %{user: user} do - Streamer.add_socket("public", %{transport_pid: 1, assigns: %{user: user}}) - Streamer.add_socket("public", %{transport_pid: 2, assigns: %{user: user}}) - - assert( - %{ - "public" => [ - %StreamerSocket{transport_pid: 2}, - %StreamerSocket{transport_pid: 1} - ] - } = Streamer.get_sockets() - ) - end - - test "it will not add a duplicate socket", %{user: user} do - Streamer.add_socket("activity", %{transport_pid: 1, assigns: %{user: user}}) - Streamer.add_socket("activity", %{transport_pid: 1, assigns: %{user: user}}) - - assert( - %{ - "activity" => [ - %StreamerSocket{transport_pid: 1} - ] - } = Streamer.get_sockets() - ) - end - end -end diff --git a/test/web/streamer/streamer_test.exs b/test/web/streamer/streamer_test.exs index 8b8d8af6c..3f012259a 100644 --- a/test/web/streamer/streamer_test.exs +++ b/test/web/streamer/streamer_test.exs @@ -12,15 +12,81 @@ defmodule Pleroma.Web.StreamerTest do alias Pleroma.User alias Pleroma.Web.CommonAPI alias Pleroma.Web.Streamer - alias Pleroma.Web.Streamer.StreamerSocket - alias Pleroma.Web.Streamer.Worker @moduletag needs_streamer: true, capture_log: true - @streamer_timeout 150 - @streamer_start_wait 10 setup do: clear_config([:instance, :skip_thread_containment]) + describe "get_topic without an user" do + test "allows public" do + assert {:ok, "public"} = Streamer.get_topic("public", nil) + assert {:ok, "public:local"} = Streamer.get_topic("public:local", nil) + assert {:ok, "public:media"} = Streamer.get_topic("public:media", nil) + assert {:ok, "public:local:media"} = Streamer.get_topic("public:local:media", nil) + end + + test "allows hashtag streams" do + assert {:ok, "hashtag:cofe"} = Streamer.get_topic("hashtag", nil, %{"tag" => "cofe"}) + end + + test "disallows user streams" do + assert {:error, _} = Streamer.get_topic("user", nil) + assert {:error, _} = Streamer.get_topic("user:notification", nil) + assert {:error, _} = Streamer.get_topic("direct", nil) + end + + test "disallows list streams" do + assert {:error, _} = Streamer.get_topic("list", nil, %{"list" => 42}) + end + end + + describe "get_topic with an user" do + setup do + user = insert(:user) + {:ok, %{user: user}} + end + + test "allows public streams", %{user: user} do + assert {:ok, "public"} = Streamer.get_topic("public", user) + assert {:ok, "public:local"} = Streamer.get_topic("public:local", user) + assert {:ok, "public:media"} = Streamer.get_topic("public:media", user) + assert {:ok, "public:local:media"} = Streamer.get_topic("public:local:media", user) + end + + test "allows user streams", %{user: user} do + expected_user_topic = "user:#{user.id}" + expected_notif_topic = "user:notification:#{user.id}" + expected_direct_topic = "direct:#{user.id}" + assert {:ok, ^expected_user_topic} = Streamer.get_topic("user", user) + assert {:ok, ^expected_notif_topic} = Streamer.get_topic("user:notification", user) + assert {:ok, ^expected_direct_topic} = Streamer.get_topic("direct", user) + end + + test "allows hashtag streams", %{user: user} do + assert {:ok, "hashtag:cofe"} = Streamer.get_topic("hashtag", user, %{"tag" => "cofe"}) + end + + test "disallows registering to an user stream", %{user: user} do + another_user = insert(:user) + assert {:error, _} = Streamer.get_topic("user:#{another_user.id}", user) + assert {:error, _} = Streamer.get_topic("user:notification:#{another_user.id}", user) + assert {:error, _} = Streamer.get_topic("direct:#{another_user.id}", user) + end + + test "allows list stream that are owned by the user", %{user: user} do + {:ok, list} = List.create("Test", user) + assert {:error, _} = Streamer.get_topic("list:#{list.id}", user) + assert {:ok, _} = Streamer.get_topic("list", user, %{"list" => list.id}) + end + + test "disallows list stream that are not owned by the user", %{user: user} do + another_user = insert(:user) + {:ok, list} = List.create("Test", another_user) + assert {:error, _} = Streamer.get_topic("list:#{list.id}", user) + assert {:error, _} = Streamer.get_topic("list", user, %{"list" => list.id}) + end + end + describe "user streams" do setup do user = insert(:user) @@ -29,69 +95,54 @@ defmodule Pleroma.Web.StreamerTest do end test "it streams the user's post in the 'user' stream", %{user: user} do - task = - Task.async(fn -> - assert_receive {:text, _}, @streamer_timeout - end) - - Streamer.add_socket( - "user", - %{transport_pid: task.pid, assigns: %{user: user}} - ) - - {:ok, activity} = CommonAPI.post(user, %{"status" => "hey"}) - - Streamer.stream("user", activity) - Task.await(task) + Streamer.get_topic_and_add_socket("user", user) + {:ok, activity} = CommonAPI.post(user, %{status: "hey"}) + assert_receive {:render_with_user, _, _, ^activity} + refute Streamer.filtered_by_user?(user, activity) end test "it streams boosts of the user in the 'user' stream", %{user: user} do - task = - Task.async(fn -> - assert_receive {:text, _}, @streamer_timeout - end) - - Streamer.add_socket( - "user", - %{transport_pid: task.pid, assigns: %{user: user}} - ) + Streamer.get_topic_and_add_socket("user", user) other_user = insert(:user) - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "hey"}) - {:ok, announce, _} = CommonAPI.repeat(activity.id, user) + {:ok, activity} = CommonAPI.post(other_user, %{status: "hey"}) + {:ok, announce} = CommonAPI.repeat(activity.id, user) - Streamer.stream("user", announce) - Task.await(task) + 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) end test "it sends notify to in the 'user' stream", %{user: user, notify: notify} do - task = - Task.async(fn -> - assert_receive {:text, _}, @streamer_timeout - end) - - Streamer.add_socket( - "user", - %{transport_pid: task.pid, assigns: %{user: user}} - ) - + Streamer.get_topic_and_add_socket("user", user) Streamer.stream("user", notify) - Task.await(task) + assert_receive {:render_with_user, _, _, ^notify} + refute Streamer.filtered_by_user?(user, notify) end test "it sends notify to in the 'user:notification' stream", %{user: user, notify: notify} do - task = - Task.async(fn -> - assert_receive {:text, _}, @streamer_timeout - end) - - Streamer.add_socket( - "user:notification", - %{transport_pid: task.pid, assigns: %{user: user}} - ) - + Streamer.get_topic_and_add_socket("user:notification", user) Streamer.stream("user:notification", notify) - Task.await(task) + 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", %{ @@ -100,18 +151,12 @@ test "it doesn't send notify to the 'user:notification' stream when a user is bl blocked = insert(:user) {:ok, _user_relationship} = User.block(user, blocked) - task = Task.async(fn -> refute_receive {:text, _}, @streamer_timeout end) + Streamer.get_topic_and_add_socket("user:notification", user) - Streamer.add_socket( - "user:notification", - %{transport_pid: task.pid, assigns: %{user: user}} - ) + {:ok, activity} = CommonAPI.post(user, %{status: ":("}) + {:ok, _} = CommonAPI.favorite(blocked, activity.id) - {:ok, activity} = CommonAPI.post(user, %{"status" => ":("}) - {:ok, notif} = CommonAPI.favorite(blocked, activity.id) - - Streamer.stream("user:notification", notif) - Task.await(task) + refute_receive _ end test "it doesn't send notify to the 'user:notification' stream when a thread is muted", %{ @@ -119,45 +164,50 @@ test "it doesn't send notify to the 'user:notification' stream when a thread is } do user2 = insert(:user) - task = Task.async(fn -> refute_receive {:text, _}, @streamer_timeout end) + {:ok, activity} = CommonAPI.post(user, %{status: "super hot take"}) + {:ok, _} = CommonAPI.add_mute(user, activity) - Streamer.add_socket( - "user:notification", - %{transport_pid: task.pid, assigns: %{user: user}} - ) + Streamer.get_topic_and_add_socket("user:notification", user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "super hot take"}) - {:ok, activity} = CommonAPI.add_mute(user, activity) - {:ok, notif} = CommonAPI.favorite(user2, activity.id) + {:ok, favorite_activity} = CommonAPI.favorite(user2, activity.id) - Streamer.stream("user:notification", notif) - Task.await(task) + refute_receive _ + assert Streamer.filtered_by_user?(user, favorite_activity) end - test "it doesn't send notify to the 'user:notification' stream' when a domain is blocked", %{ + test "it sends favorite to 'user:notification' stream'", %{ user: user } do user2 = insert(:user, %{ap_id: "https://hecking-lewd-place.com/user/meanie"}) - task = Task.async(fn -> refute_receive {:text, _}, @streamer_timeout end) + {:ok, activity} = CommonAPI.post(user, %{status: "super hot take"}) + Streamer.get_topic_and_add_socket("user:notification", user) + {:ok, favorite_activity} = CommonAPI.favorite(user2, activity.id) - Streamer.add_socket( - "user:notification", - %{transport_pid: task.pid, assigns: %{user: user}} - ) + assert_receive {:render_with_user, _, "notification.json", notif} + assert notif.activity.id == favorite_activity.id + refute Streamer.filtered_by_user?(user, notif) + end + + test "it doesn't send the 'user:notification' stream' when a domain is blocked", %{ + user: user + } do + user2 = insert(:user, %{ap_id: "https://hecking-lewd-place.com/user/meanie"}) {:ok, user} = User.block_domain(user, "hecking-lewd-place.com") - {:ok, activity} = CommonAPI.post(user, %{"status" => "super hot take"}) - {:ok, notif} = CommonAPI.favorite(user2, activity.id) + {:ok, activity} = CommonAPI.post(user, %{status: "super hot take"}) + Streamer.get_topic_and_add_socket("user:notification", user) + {:ok, favorite_activity} = CommonAPI.favorite(user2, activity.id) - Streamer.stream("user:notification", notif) - Task.await(task) + refute_receive _ + assert Streamer.filtered_by_user?(user, favorite_activity) end test "it sends follow activities to the 'user:notification' stream", %{ user: user } do user_url = user.ap_id + user2 = insert(:user) body = File.read!("test/fixtures/users_mock/localhost.json") @@ -169,79 +219,57 @@ test "it sends follow activities to the 'user:notification' stream", %{ %Tesla.Env{status: 200, body: body} end) - user2 = insert(:user) - task = Task.async(fn -> assert_receive {:text, _}, @streamer_timeout end) + Streamer.get_topic_and_add_socket("user:notification", user) + {:ok, _follower, _followed, follow_activity} = CommonAPI.follow(user2, user) - Process.sleep(@streamer_start_wait) - - Streamer.add_socket( - "user:notification", - %{transport_pid: task.pid, assigns: %{user: user}} - ) - - {:ok, _follower, _followed, _activity} = CommonAPI.follow(user2, user) - - # We don't directly pipe the notification to the streamer as it's already - # generated as a side effect of CommonAPI.follow(). - Task.await(task) + assert_receive {:render_with_user, _, "notification.json", notif} + assert notif.activity.id == follow_activity.id + refute Streamer.filtered_by_user?(user, notif) end end - test "it sends to public" do + test "it sends to public authenticated" do user = insert(:user) other_user = insert(:user) - task = - Task.async(fn -> - assert_receive {:text, _}, @streamer_timeout - end) + Streamer.get_topic_and_add_socket("public", other_user) - fake_socket = %StreamerSocket{ - transport_pid: task.pid, - user: user - } + {:ok, activity} = CommonAPI.post(user, %{status: "Test"}) + assert_receive {:render_with_user, _, _, ^activity} + refute Streamer.filtered_by_user?(user, activity) + end - {:ok, activity} = CommonAPI.post(other_user, %{"status" => "Test"}) + test "works for deletions" do + user = insert(:user) + other_user = insert(:user) + {:ok, activity} = CommonAPI.post(other_user, %{status: "Test"}) - topics = %{ - "public" => [fake_socket] - } + Streamer.get_topic_and_add_socket("public", user) - Worker.push_to_socket(topics, "public", activity) + {:ok, _} = CommonAPI.delete(activity.id, other_user) + activity_id = activity.id + assert_receive {:text, event} + assert %{"event" => "delete", "payload" => ^activity_id} = Jason.decode!(event) + end - Task.await(task) + test "it sends to public unauthenticated" do + user = insert(:user) - task = - Task.async(fn -> - expected_event = - %{ - "event" => "delete", - "payload" => activity.id - } - |> Jason.encode!() + Streamer.get_topic_and_add_socket("public", nil) - assert_receive {:text, received_event}, @streamer_timeout - assert received_event == expected_event - end) + {:ok, activity} = CommonAPI.post(user, %{status: "Test"}) + activity_id = activity.id + assert_receive {:text, event} + assert %{"event" => "update", "payload" => payload} = Jason.decode!(event) + assert %{"id" => ^activity_id} = Jason.decode!(payload) - fake_socket = %StreamerSocket{ - transport_pid: task.pid, - user: user - } - - {:ok, activity} = CommonAPI.delete(activity.id, other_user) - - topics = %{ - "public" => [fake_socket] - } - - Worker.push_to_socket(topics, "public", activity) - - Task.await(task) + {:ok, _} = CommonAPI.delete(activity.id, user) + assert_receive {:text, event} + assert %{"event" => "delete", "payload" => ^activity_id} = Jason.decode!(event) end describe "thread_containment" do - test "it doesn't send to user if recipients invalid and thread containment is enabled" do + test "it filters to user if recipients invalid and thread containment is enabled" do Pleroma.Config.put([:instance, :skip_thread_containment], false) author = insert(:user) user = insert(:user) @@ -256,12 +284,10 @@ test "it doesn't send to user if recipients invalid and thread containment is en ) ) - task = Task.async(fn -> refute_receive {:text, _}, 1_000 end) - fake_socket = %StreamerSocket{transport_pid: task.pid, user: user} - topics = %{"public" => [fake_socket]} - Worker.push_to_socket(topics, "public", activity) - - Task.await(task) + Streamer.get_topic_and_add_socket("public", user) + Streamer.stream("public", activity) + assert_receive {:render_with_user, _, _, ^activity} + assert Streamer.filtered_by_user?(user, activity) end test "it sends message if recipients invalid and thread containment is disabled" do @@ -279,12 +305,11 @@ test "it sends message if recipients invalid and thread containment is disabled" ) ) - task = Task.async(fn -> assert_receive {:text, _}, 1_000 end) - fake_socket = %StreamerSocket{transport_pid: task.pid, user: user} - topics = %{"public" => [fake_socket]} - Worker.push_to_socket(topics, "public", activity) + Streamer.get_topic_and_add_socket("public", user) + Streamer.stream("public", activity) - Task.await(task) + assert_receive {:render_with_user, _, _, ^activity} + refute Streamer.filtered_by_user?(user, activity) end test "it sends message if recipients invalid and thread containment is enabled but user's thread containment is disabled" do @@ -302,255 +327,168 @@ test "it sends message if recipients invalid and thread containment is enabled b ) ) - task = Task.async(fn -> assert_receive {:text, _}, 1_000 end) - fake_socket = %StreamerSocket{transport_pid: task.pid, user: user} - topics = %{"public" => [fake_socket]} - Worker.push_to_socket(topics, "public", activity) + Streamer.get_topic_and_add_socket("public", user) + Streamer.stream("public", activity) - Task.await(task) + assert_receive {:render_with_user, _, _, ^activity} + refute Streamer.filtered_by_user?(user, activity) end end describe "blocks" do - test "it doesn't send messages involving blocked users" do + test "it filters messages involving blocked users" do user = insert(:user) blocked_user = insert(:user) {:ok, _user_relationship} = User.block(user, blocked_user) - {:ok, activity} = CommonAPI.post(blocked_user, %{"status" => "Test"}) - - task = - Task.async(fn -> - refute_receive {:text, _}, 1_000 - end) - - fake_socket = %StreamerSocket{ - transport_pid: task.pid, - user: user - } - - topics = %{ - "public" => [fake_socket] - } - - Worker.push_to_socket(topics, "public", activity) - - Task.await(task) + Streamer.get_topic_and_add_socket("public", user) + {:ok, activity} = CommonAPI.post(blocked_user, %{status: "Test"}) + assert_receive {:render_with_user, _, _, ^activity} + assert Streamer.filtered_by_user?(user, activity) end - test "it doesn't send messages transitively involving blocked users" do + test "it filters messages transitively involving blocked users" do blocker = insert(:user) blockee = insert(:user) friend = insert(:user) - task = - Task.async(fn -> - refute_receive {:text, _}, 1_000 - end) - - fake_socket = %StreamerSocket{ - transport_pid: task.pid, - user: blocker - } - - topics = %{ - "public" => [fake_socket] - } + Streamer.get_topic_and_add_socket("public", blocker) {:ok, _user_relationship} = User.block(blocker, blockee) - {:ok, activity_one} = CommonAPI.post(friend, %{"status" => "hey! @#{blockee.nickname}"}) + {:ok, activity_one} = CommonAPI.post(friend, %{status: "hey! @#{blockee.nickname}"}) - Worker.push_to_socket(topics, "public", activity_one) + assert_receive {:render_with_user, _, _, ^activity_one} + assert Streamer.filtered_by_user?(blocker, activity_one) - {:ok, activity_two} = CommonAPI.post(blockee, %{"status" => "hey! @#{friend.nickname}"}) + {:ok, activity_two} = CommonAPI.post(blockee, %{status: "hey! @#{friend.nickname}"}) - Worker.push_to_socket(topics, "public", activity_two) + assert_receive {:render_with_user, _, _, ^activity_two} + assert Streamer.filtered_by_user?(blocker, activity_two) - {:ok, activity_three} = CommonAPI.post(blockee, %{"status" => "hey! @#{blocker.nickname}"}) + {:ok, activity_three} = CommonAPI.post(blockee, %{status: "hey! @#{blocker.nickname}"}) - Worker.push_to_socket(topics, "public", activity_three) - - Task.await(task) + assert_receive {:render_with_user, _, _, ^activity_three} + assert Streamer.filtered_by_user?(blocker, activity_three) end end - test "it doesn't send unwanted DMs to list" do - user_a = insert(:user) - user_b = insert(:user) - user_c = insert(:user) + describe "lists" do + test "it doesn't send unwanted DMs to list" do + user_a = insert(:user) + user_b = insert(:user) + user_c = insert(:user) - {:ok, user_a} = User.follow(user_a, user_b) + {:ok, user_a} = User.follow(user_a, user_b) - {:ok, list} = List.create("Test", user_a) - {:ok, list} = List.follow(list, user_b) + {:ok, list} = List.create("Test", user_a) + {:ok, list} = List.follow(list, user_b) - {:ok, activity} = - CommonAPI.post(user_b, %{ - "status" => "@#{user_c.nickname} Test", - "visibility" => "direct" - }) + Streamer.get_topic_and_add_socket("list", user_a, %{"list" => list.id}) - task = - Task.async(fn -> - refute_receive {:text, _}, 1_000 - end) + {:ok, _activity} = + CommonAPI.post(user_b, %{ + status: "@#{user_c.nickname} Test", + visibility: "direct" + }) - fake_socket = %StreamerSocket{ - transport_pid: task.pid, - user: user_a - } + refute_receive _ + end - topics = %{ - "list:#{list.id}" => [fake_socket] - } + test "it doesn't send unwanted private posts to list" do + user_a = insert(:user) + user_b = insert(:user) - Worker.handle_call({:stream, "list", activity}, self(), topics) + {:ok, list} = List.create("Test", user_a) + {:ok, list} = List.follow(list, user_b) - Task.await(task) + Streamer.get_topic_and_add_socket("list", user_a, %{"list" => list.id}) + + {:ok, _activity} = + CommonAPI.post(user_b, %{ + status: "Test", + visibility: "private" + }) + + refute_receive _ + end + + test "it sends wanted private posts to list" do + user_a = insert(:user) + user_b = insert(:user) + + {:ok, user_a} = User.follow(user_a, user_b) + + {:ok, list} = List.create("Test", user_a) + {:ok, list} = List.follow(list, user_b) + + Streamer.get_topic_and_add_socket("list", user_a, %{"list" => list.id}) + + {:ok, activity} = + CommonAPI.post(user_b, %{ + status: "Test", + visibility: "private" + }) + + assert_receive {:render_with_user, _, _, ^activity} + refute Streamer.filtered_by_user?(user_a, activity) + end end - test "it doesn't send unwanted private posts to list" do - user_a = insert(:user) - user_b = insert(:user) + describe "muted reblogs" do + test "it filters muted reblogs" do + user1 = insert(:user) + user2 = insert(:user) + user3 = insert(:user) + CommonAPI.follow(user1, user2) + CommonAPI.hide_reblogs(user1, user2) - {:ok, list} = List.create("Test", user_a) - {:ok, list} = List.follow(list, user_b) + {:ok, create_activity} = CommonAPI.post(user3, %{status: "I'm kawen"}) - {:ok, activity} = - CommonAPI.post(user_b, %{ - "status" => "Test", - "visibility" => "private" - }) + Streamer.get_topic_and_add_socket("user", user1) + {: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 - task = - Task.async(fn -> - refute_receive {:text, _}, 1_000 - end) + test "it filters reblog notification for reblog-muted actors" do + user1 = insert(:user) + user2 = insert(:user) + CommonAPI.follow(user1, user2) + CommonAPI.hide_reblogs(user1, user2) - fake_socket = %StreamerSocket{ - transport_pid: task.pid, - user: user_a - } + {:ok, create_activity} = CommonAPI.post(user1, %{status: "I'm kawen"}) + Streamer.get_topic_and_add_socket("user", user1) + {:ok, _announce_activity} = CommonAPI.repeat(create_activity.id, user2) - topics = %{ - "list:#{list.id}" => [fake_socket] - } + assert_receive {:render_with_user, _, "notification.json", notif} + assert Streamer.filtered_by_user?(user1, notif) + end - Worker.handle_call({:stream, "list", activity}, self(), topics) + test "it send non-reblog notification for reblog-muted actors" do + user1 = insert(:user) + user2 = insert(:user) + CommonAPI.follow(user1, user2) + CommonAPI.hide_reblogs(user1, user2) - Task.await(task) + {:ok, create_activity} = CommonAPI.post(user1, %{status: "I'm kawen"}) + Streamer.get_topic_and_add_socket("user", user1) + {:ok, _favorite_activity} = CommonAPI.favorite(user2, create_activity.id) + + assert_receive {:render_with_user, _, "notification.json", notif} + refute Streamer.filtered_by_user?(user1, notif) + end end - test "it sends wanted private posts to list" do - user_a = insert(:user) - user_b = insert(:user) - - {:ok, user_a} = User.follow(user_a, user_b) - - {:ok, list} = List.create("Test", user_a) - {:ok, list} = List.follow(list, user_b) - - {:ok, activity} = - CommonAPI.post(user_b, %{ - "status" => "Test", - "visibility" => "private" - }) - - task = - Task.async(fn -> - assert_receive {:text, _}, 1_000 - end) - - fake_socket = %StreamerSocket{ - transport_pid: task.pid, - user: user_a - } - - Streamer.add_socket( - "list:#{list.id}", - fake_socket - ) - - Worker.handle_call({:stream, "list", activity}, self(), %{}) - - Task.await(task) - end - - test "it doesn't send muted reblogs" do - user1 = insert(:user) - user2 = insert(:user) - user3 = insert(:user) - CommonAPI.hide_reblogs(user1, user2) - - {:ok, create_activity} = CommonAPI.post(user3, %{"status" => "I'm kawen"}) - {:ok, announce_activity, _} = CommonAPI.repeat(create_activity.id, user2) - - task = - Task.async(fn -> - refute_receive {:text, _}, 1_000 - end) - - fake_socket = %StreamerSocket{ - transport_pid: task.pid, - user: user1 - } - - topics = %{ - "public" => [fake_socket] - } - - Worker.push_to_socket(topics, "public", announce_activity) - - Task.await(task) - end - - test "it does send non-reblog notification for reblog-muted actors" do - user1 = insert(:user) - user2 = insert(:user) - user3 = insert(:user) - CommonAPI.hide_reblogs(user1, user2) - - {:ok, create_activity} = CommonAPI.post(user3, %{"status" => "I'm kawen"}) - {:ok, favorite_activity} = CommonAPI.favorite(user2, create_activity.id) - - task = - Task.async(fn -> - assert_receive {:text, _}, 1_000 - end) - - fake_socket = %StreamerSocket{ - transport_pid: task.pid, - user: user1 - } - - topics = %{ - "public" => [fake_socket] - } - - Worker.push_to_socket(topics, "public", favorite_activity) - - Task.await(task) - end - - test "it doesn't send posts from muted threads" do + test "it filters posts from muted threads" do user = insert(:user) user2 = insert(:user) + Streamer.get_topic_and_add_socket("user", user2) {:ok, user2, user, _activity} = CommonAPI.follow(user2, user) - - {:ok, activity} = CommonAPI.post(user, %{"status" => "super hot take"}) - - {:ok, activity} = CommonAPI.add_mute(user2, activity) - - task = Task.async(fn -> refute_receive {:text, _}, @streamer_timeout end) - - Streamer.add_socket( - "user", - %{transport_pid: task.pid, assigns: %{user: user2}} - ) - - Streamer.stream("user", activity) - Task.await(task) + {:ok, activity} = CommonAPI.post(user, %{status: "super hot take"}) + {:ok, _} = CommonAPI.add_mute(user2, activity) + assert_receive {:render_with_user, _, _, ^activity} + assert Streamer.filtered_by_user?(user2, activity) end describe "direct streams" do @@ -562,103 +500,88 @@ test "it sends conversation update to the 'direct' stream", %{} do user = insert(:user) another_user = insert(:user) - task = - Task.async(fn -> - assert_receive {:text, received_event}, @streamer_timeout - - assert %{"event" => "conversation", "payload" => received_payload} = - Jason.decode!(received_event) - - assert %{"last_status" => last_status} = Jason.decode!(received_payload) - [participation] = Participation.for_user(user) - assert last_status["pleroma"]["direct_conversation_id"] == participation.id - end) - - Streamer.add_socket( - "direct", - %{transport_pid: task.pid, assigns: %{user: user}} - ) + Streamer.get_topic_and_add_socket("direct", user) {:ok, _create_activity} = CommonAPI.post(another_user, %{ - "status" => "hey @#{user.nickname}", - "visibility" => "direct" + status: "hey @#{user.nickname}", + visibility: "direct" }) - Task.await(task) + assert_receive {:text, received_event} + + assert %{"event" => "conversation", "payload" => received_payload} = + Jason.decode!(received_event) + + assert %{"last_status" => last_status} = Jason.decode!(received_payload) + [participation] = Participation.for_user(user) + assert last_status["pleroma"]["direct_conversation_id"] == participation.id end test "it doesn't send conversation update to the 'direct' stream when the last message in the conversation is deleted" do user = insert(:user) another_user = insert(:user) + Streamer.get_topic_and_add_socket("direct", user) + {:ok, create_activity} = CommonAPI.post(another_user, %{ - "status" => "hi @#{user.nickname}", - "visibility" => "direct" + status: "hi @#{user.nickname}", + visibility: "direct" }) - task = - Task.async(fn -> - assert_receive {:text, received_event}, @streamer_timeout - assert %{"event" => "delete", "payload" => _} = Jason.decode!(received_event) + create_activity_id = create_activity.id + assert_receive {:render_with_user, _, _, ^create_activity} + assert_receive {:text, received_conversation1} + assert %{"event" => "conversation", "payload" => _} = Jason.decode!(received_conversation1) - refute_receive {:text, _}, @streamer_timeout - end) + {:ok, _} = CommonAPI.delete(create_activity_id, another_user) - Process.sleep(@streamer_start_wait) + assert_receive {:text, received_event} - Streamer.add_socket( - "direct", - %{transport_pid: task.pid, assigns: %{user: user}} - ) + assert %{"event" => "delete", "payload" => ^create_activity_id} = + Jason.decode!(received_event) - {:ok, _} = CommonAPI.delete(create_activity.id, another_user) - - Task.await(task) + refute_receive _ end test "it sends conversation update to the 'direct' stream when a message is deleted" do user = insert(:user) another_user = insert(:user) + Streamer.get_topic_and_add_socket("direct", user) {:ok, create_activity} = CommonAPI.post(another_user, %{ - "status" => "hi @#{user.nickname}", - "visibility" => "direct" + status: "hi @#{user.nickname}", + visibility: "direct" }) {:ok, create_activity2} = CommonAPI.post(another_user, %{ - "status" => "hi @#{user.nickname}", - "in_reply_to_status_id" => create_activity.id, - "visibility" => "direct" + status: "hi @#{user.nickname} 2", + in_reply_to_status_id: create_activity.id, + visibility: "direct" }) - task = - Task.async(fn -> - assert_receive {:text, received_event}, @streamer_timeout - assert %{"event" => "delete", "payload" => _} = Jason.decode!(received_event) - - assert_receive {:text, received_event}, @streamer_timeout - - assert %{"event" => "conversation", "payload" => received_payload} = - Jason.decode!(received_event) - - assert %{"last_status" => last_status} = Jason.decode!(received_payload) - assert last_status["id"] == to_string(create_activity.id) - end) - - Process.sleep(@streamer_start_wait) - - Streamer.add_socket( - "direct", - %{transport_pid: task.pid, assigns: %{user: user}} - ) + assert_receive {:render_with_user, _, _, ^create_activity} + assert_receive {:render_with_user, _, _, ^create_activity2} + assert_receive {:text, received_conversation1} + assert %{"event" => "conversation", "payload" => _} = Jason.decode!(received_conversation1) + assert_receive {:text, received_conversation1} + assert %{"event" => "conversation", "payload" => _} = Jason.decode!(received_conversation1) {:ok, _} = CommonAPI.delete(create_activity2.id, another_user) - Task.await(task) + assert_receive {:text, received_event} + assert %{"event" => "delete", "payload" => _} = Jason.decode!(received_event) + + assert_receive {:text, received_event} + + assert %{"event" => "conversation", "payload" => received_payload} = + Jason.decode!(received_event) + + assert %{"last_status" => last_status} = Jason.decode!(received_payload) + assert last_status["id"] == to_string(create_activity.id) end end end diff --git a/test/web/twitter_api/password_controller_test.exs b/test/web/twitter_api/password_controller_test.exs index 0a24860d3..231a46c67 100644 --- a/test/web/twitter_api/password_controller_test.exs +++ b/test/web/twitter_api/password_controller_test.exs @@ -54,7 +54,7 @@ test "it returns HTTP 200", %{conn: conn} do assert response =~ "

Password changed!

" user = refresh_record(user) - assert Comeonin.Pbkdf2.checkpw("test", user.password_hash) + assert Pbkdf2.verify_pass("test", user.password_hash) assert Enum.empty?(Token.get_user_tokens(user)) end diff --git a/test/web/twitter_api/remote_follow_controller_test.exs b/test/web/twitter_api/remote_follow_controller_test.exs index 5ff8694a8..f7e54c26a 100644 --- a/test/web/twitter_api/remote_follow_controller_test.exs +++ b/test/web/twitter_api/remote_follow_controller_test.exs @@ -6,11 +6,14 @@ defmodule Pleroma.Web.TwitterAPI.RemoteFollowControllerTest do use Pleroma.Web.ConnCase alias Pleroma.Config + alias Pleroma.MFA + alias Pleroma.MFA.TOTP alias Pleroma.User alias Pleroma.Web.CommonAPI import ExUnit.CaptureLog import Pleroma.Factory + import Ecto.Query setup do Tesla.Mock.mock(fn env -> apply(HttpRequestMock, :request, [env]) end) @@ -160,6 +163,119 @@ test "returns success result when user already in followers", %{conn: conn} do end end + describe "POST /ostatus_subscribe - follow/2 with enabled Two-Factor Auth " do + test "render the MFA login form", %{conn: conn} do + otp_secret = TOTP.generate_secret() + + user = + insert(:user, + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + totp: %MFA.Settings.TOTP{secret: otp_secret, confirmed: true} + } + ) + + user2 = insert(:user) + + response = + conn + |> post(remote_follow_path(conn, :do_follow), %{ + "authorization" => %{"name" => user.nickname, "password" => "test", "id" => user2.id} + }) + |> response(200) + + mfa_token = Pleroma.Repo.one(from(q in Pleroma.MFA.Token, where: q.user_id == ^user.id)) + + assert response =~ "Two-factor authentication" + assert response =~ "Authentication code" + assert response =~ mfa_token.token + refute user2.follower_address in User.following(user) + end + + test "returns error when password is incorrect", %{conn: conn} do + otp_secret = TOTP.generate_secret() + + user = + insert(:user, + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + totp: %MFA.Settings.TOTP{secret: otp_secret, confirmed: true} + } + ) + + user2 = insert(:user) + + response = + conn + |> post(remote_follow_path(conn, :do_follow), %{ + "authorization" => %{"name" => user.nickname, "password" => "test1", "id" => user2.id} + }) + |> response(200) + + assert response =~ "Wrong username or password" + refute user2.follower_address in User.following(user) + end + + test "follows", %{conn: conn} do + otp_secret = TOTP.generate_secret() + + user = + insert(:user, + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + totp: %MFA.Settings.TOTP{secret: otp_secret, confirmed: true} + } + ) + + {:ok, %{token: token}} = MFA.Token.create_token(user) + + user2 = insert(:user) + otp_token = TOTP.generate_token(otp_secret) + + conn = + conn + |> post( + remote_follow_path(conn, :do_follow), + %{ + "mfa" => %{"code" => otp_token, "token" => token, "id" => user2.id} + } + ) + + assert redirected_to(conn) == "/users/#{user2.id}" + assert user2.follower_address in User.following(user) + end + + test "returns error when auth code is incorrect", %{conn: conn} do + otp_secret = TOTP.generate_secret() + + user = + insert(:user, + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + totp: %MFA.Settings.TOTP{secret: otp_secret, confirmed: true} + } + ) + + {:ok, %{token: token}} = MFA.Token.create_token(user) + + user2 = insert(:user) + otp_token = TOTP.generate_token(TOTP.generate_secret()) + + response = + conn + |> post( + remote_follow_path(conn, :do_follow), + %{ + "mfa" => %{"code" => otp_token, "token" => token, "id" => user2.id} + } + ) + |> response(200) + + assert response =~ "Wrong authentication code" + refute user2.follower_address in User.following(user) + end + end + describe "POST /ostatus_subscribe - follow/2 without assigned user " do test "follows", %{conn: conn} do user = insert(:user) diff --git a/test/web/twitter_api/util_controller_test.exs b/test/web/twitter_api/util_controller_test.exs index b701239a0..ad919d341 100644 --- a/test/web/twitter_api/util_controller_test.exs +++ b/test/web/twitter_api/util_controller_test.exs @@ -688,7 +688,7 @@ test "with proper permissions, valid password and matching new password and conf assert json_response(conn, 200) == %{"status" => "success"} fetched_user = User.get_cached_by_id(user.id) - assert Comeonin.Pbkdf2.checkpw("newpass", fetched_user.password_hash) == true + assert Pbkdf2.verify_pass("newpass", fetched_user.password_hash) == true end end diff --git a/test/web/web_finger/web_finger_test.exs b/test/web/web_finger/web_finger_test.exs index 4b4282727..f4884e0a2 100644 --- a/test/web/web_finger/web_finger_test.exs +++ b/test/web/web_finger/web_finger_test.exs @@ -67,7 +67,7 @@ test "it work for AP-only user" do assert data["magic_key"] == nil assert data["salmon"] == nil - assert data["topic"] == "https://mstdn.jp/users/kPherox.atom" + assert data["topic"] == nil assert data["subject"] == "acct:kPherox@mstdn.jp" assert data["ap_id"] == "https://mstdn.jp/users/kPherox" assert data["subscribe_address"] == "https://mstdn.jp/authorize_interaction?acct={uri}" diff --git a/test/workers/cron/digest_emails_worker_test.exs b/test/workers/cron/digest_emails_worker_test.exs index 0a63bf4e0..f9bc50db5 100644 --- a/test/workers/cron/digest_emails_worker_test.exs +++ b/test/workers/cron/digest_emails_worker_test.exs @@ -29,7 +29,7 @@ defmodule Pleroma.Workers.Cron.DigestEmailsWorkerTest do user2 = insert(:user, last_digest_emailed_at: date) {:ok, _} = User.switch_email_notifications(user2, "digest", true) - CommonAPI.post(user, %{"status" => "hey @#{user2.nickname}!"}) + CommonAPI.post(user, %{status: "hey @#{user2.nickname}!"}) {:ok, user2: user2} end diff --git a/test/workers/cron/new_users_digest_worker_test.exs b/test/workers/cron/new_users_digest_worker_test.exs index e6d050ecc..ee589bb55 100644 --- a/test/workers/cron/new_users_digest_worker_test.exs +++ b/test/workers/cron/new_users_digest_worker_test.exs @@ -15,7 +15,7 @@ test "it sends new users digest emails" do admin = insert(:user, %{is_admin: true}) user = insert(:user, %{inserted_at: yesterday}) user2 = insert(:user, %{inserted_at: yesterday}) - CommonAPI.post(user, %{"status" => "cofe"}) + CommonAPI.post(user, %{status: "cofe"}) NewUsersDigestWorker.perform(nil, nil) ObanHelpers.perform_all() @@ -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 @@ -36,7 +37,7 @@ test "it doesn't fail when admin has no email" do insert(:user, %{inserted_at: yesterday}) user = insert(:user, %{inserted_at: yesterday}) - CommonAPI.post(user, %{"status" => "cofe"}) + CommonAPI.post(user, %{status: "cofe"}) NewUsersDigestWorker.perform(nil, nil) ObanHelpers.perform_all() diff --git a/test/workers/cron/purge_expired_activities_worker_test.exs b/test/workers/cron/purge_expired_activities_worker_test.exs index beac55fb2..6d2991a60 100644 --- a/test/workers/cron/purge_expired_activities_worker_test.exs +++ b/test/workers/cron/purge_expired_activities_worker_test.exs @@ -51,7 +51,7 @@ test "works with ActivityExpirationPolicy" do days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365) - {:ok, %{id: id} = activity} = Pleroma.Web.CommonAPI.post(user, %{"status" => "cofe"}) + {:ok, %{id: id} = activity} = Pleroma.Web.CommonAPI.post(user, %{status: "cofe"}) past_date = NaiveDateTime.utc_now() |> Timex.shift(days: -days) |> NaiveDateTime.truncate(:second)