diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2024-04-29 10:16:09 -0400 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2024-04-29 10:16:09 -0400 |
| commit | 2cd42b9d71238abc14748566134ead380d5f0969 (patch) | |
| tree | 03b479b0d92781add4c196bb515886f0b981e842 /themes/itheme | |
Init
Diffstat (limited to 'themes/itheme')
52 files changed, 13114 insertions, 0 deletions
diff --git a/themes/itheme/LICENSE b/themes/itheme/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/themes/itheme/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<https://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<https://www.gnu.org/licenses/why-not-lgpl.html>. diff --git a/themes/itheme/README.md b/themes/itheme/README.md new file mode 100644 index 0000000..7edffef --- /dev/null +++ b/themes/itheme/README.md @@ -0,0 +1,114 @@ +# iTheme theme for Hugo + +**If you like this theme, [please give me a star!](https://github.com/floyd-li/hugo-theme-itheme)** + + + + +## Introduction + +[中文说明](https://github.com/floyd-li/hugo-theme-itheme/blob/master/README_CN.md) + +An Apple style theme for [Hugo](https://gohugo.io/), inspired by [astro-air-blog](https://github.com/austin2035/astro-air-blog) + +## Preview + +[Demo Site](https://hugo-theme-itheme.netlify.app) + +## Quick Start + +Before you start, make sure you have installed [Hugo](https://gohugo.io/). + +### Quick start with the demo site + +Here's the [demo site repo](https://github.com/floyd-li/itheme-demo-site) + +```bash +git clone --recurse-submodules https://github.com/floyd-li/itheme-demo-site.git my-site +cd ./my-site && hugo server -D +``` + +Then you can visit `http://localhost:1313` to see the demo site! + +### Use the theme for existed site + +```bash +git submodule add https://github.com/floyd-li/hugo-theme-itheme.git themes/hugo-theme-itheme +echo "theme = 'hugo-theme-itheme'" >> config.toml +``` + +Then you need to add some configuration to `config.toml`, please flow the [Site Configuration](#site-configuration). + +## Screenshot + + + +## Features + +- `Light` and `Dark` mode for post +- Three different sizes for images in the post +- `i18n` support (currently only support `en` and `zh-hans`, there is a great need for contributing translation) +- [Algolia](https://www.algolia.com/) search integration +- Custom JavaScript/CSS support (You may put these files in `static/` directory) + +## Configuration + +### Site Configuration + +```toml +defaultContentLanguage = "en" # current only supported 'en' and 'zh-hans', see the 'i18n' folder +[params] + defaultCover = 'https://example.com/cover.jpg' # default cover image for post not setting cover + email = 'floyd.li@outlook.com' # the email address display in the footer + [params.algolia] # Algolia search configuration + enabled = true # enable Algolia search + appId = 'YOUR_KEY' # appid for Algolia search + appKey = 'YOUR_APP_KEY' # appkey for Algolia search + searchIndex = 'YOUR_INDEX' # index for Algolia search + [[params.css]] # custom css stylesheet, you can add one or more, url is relative in 'static' folder + url = 'css1.css' + [[params.css]] + url = 'css2.css' + [[params.js]] # custom javascript, you can add one or more, url is relative in 'static' folder + url = 'js1.js' + [[params.js]] + url = 'js2.js' + [[params.socialMedia]] # custom social links display in the footer, you can add one or more + name = 'Github' + url = 'https://github.com/floyd-li' + [[params.socialMedia]] + name = 'Twitter' + url = 'https://twitter.com/some-one' + [[params.blogroll]] # blogroll links display in the footer, you can add one or more + name = 'Apple' + url = 'https://Apple.com/' + [[params.blogroll]] + name = 'Google' + url = 'https://Google.com/' +``` + +### Post Configuration + +```markdown +--- +title: 'Some Article' +date: '2022-10-27T13:06:38+08:00' +draft: true +description: 'some description of the article' +author: 'author of this article' +cover: 'https://example.com/cover.jpg' // if not set cover, it will use the 'defaultCover' in site configuration +tags: ["tag1", "tag2", "tag3"] +theme: "dark" // you can set 'light' or 'dark' here +--- +``` + +### Three display modes of images + +The three display modes of images are: `inline`, `big`, `wide`, you can visit the [demo site](https://hugo-theme-itheme.netlify.app/posts/mark-down-syntax/#Image) for preview +When you edit your markdown file, you can add `inline`, `big` or `wide` to the image alt, like this: + +```markdown + +``` + +The Separator is `|`, and the default mode is `big`. diff --git a/themes/itheme/README_CN.md b/themes/itheme/README_CN.md new file mode 100644 index 0000000..0c148d6 --- /dev/null +++ b/themes/itheme/README_CN.md @@ -0,0 +1,114 @@ +# iTheme theme for Hugo + +**如果喜欢这个主题, [请给我点赞!](https://github.com/floyd-li/hugo-theme-itheme)** + + + + +## 介绍 + +[English Readme](https://github.com/floyd-li/hugo-theme-itheme/blob/master/README.md) + +一个苹果味十足的[Hugo](https://gohugo.io/)主题,移植自[astro-air-blog](https://github.com/austin2035/astro-air-blog) + +## 预览 + +[测试站点](https://hugo-theme-itheme.netlify.app) + +## 快速开始 + +在开始之前,请先安装好[Hugo](https://gohugo.io/)。 + +### 使用测试站点快速开始 + +这是[测试站点的仓库](https://github.com/floyd-li/itheme-demo-site) + +```bash +git clone --recurse-submodules https://github.com/floyd-li/itheme-demo-site.git my-site +cd ./my-site && hugo server -D +``` + +然后,就可以访问`http://localhost:1313`查看效果啦~ + +### 作为一个已有项目的主题 + +```bash +git submodule add https://github.com/floyd-li/hugo-theme-itheme.git themes/hugo-theme-itheme +echo "theme = 'hugo-theme-itheme'" >> config.toml +``` + +可能需要在`config.toml`文件中添加一些配置,请参考后文的[站点配置](#site-configuration) + +## 截屏 + + + +## 特性 + +- 支持文章`明``暗`两种风格 +- 文中配置支持三种不同的大小 +- 多语言支持(当前仅支持了中文和英文,欢迎提交其他语言的翻译) +- 支持[Algolia](https://www.algolia.com/)搜索 +- 支持自定义JavaScript/CSS文件(文件需置于`static/`目录中) + +## 配置 + +### 站点配置 + +```toml +defaultContentLanguage = "en" # 默认语言,当前仅支持英文(en)和简体中文(zh-hans),可以查看'i18n'文件夹 +[params] + defaultCover = 'https://example.com/cover.jpg' # 文章未设置封面时的默认封面图 + email = 'floyd.li@outlook.com' # 页脚显示的邮件地址the email address display in the footer + [params.algolia] # Algolia搜索功能配置 + enabled = true # 是否启用Algolia搜索功能 + appId = 'YOUR_KEY' # Algolia appid + appKey = 'YOUR_APP_KEY' # Algolia appkey + searchIndex = 'YOUR_INDEX' # Algolia index + [[params.css]] # 自定义CSS样式文件,可添加多个,文件位于'static'目录下,相对路径 + url = 'css1.css' + [[params.css]] + url = 'css2.css' + [[params.js]] # 自定义JavaScript文件,可添加多个,文件位于'static'目录下,相对路径 + url = 'js1.js' + [[params.js]] + url = 'js2.js' + [[params.socialMedia]] # 页脚显示的自定义的媒体链接,可添加多个 + name = 'Github' + url = 'https://github.com/floyd-li' + [[params.socialMedia]] + name = 'Twitter' + url = 'https://twitter.com/some-one' + [[params.blogroll]] # 页脚显示的自定义的友情链接,可添加多个 + name = 'Apple' + url = 'https://Apple.com/' + [[params.blogroll]] + name = 'Google' + url = 'https://Google.com/' +``` + +### 文章设置 + +```markdown +--- +title: 'Some Article' +date: '2022-10-27T13:06:38+08:00' +draft: true +description: 'some description of the article' +author: 'author of this article' +cover: 'https://example.com/cover.jpg' // 封面图,如果这里没有配置,将会使用站点配置中的defaultCover +tags: ["tag1", "tag2", "tag3"] +theme: "dark" // 设置文章的明暗主题(light/dark) +--- +``` + +### 三种图片显示模式 + +三种图片显示模式分别为`inline(中杯)`,`big(大杯)`,`wide(特大杯)`,具体效果可参见[演示站点页面](https://hugo-theme-itheme.netlify.app/posts/mark-down-syntax/#Image) +在编辑`Markdown`文件时,可以在插入配图的alt属性上加上`inline`, `big`或`wide`即可。 + +```markdown + +``` + +分隔符是英文字符`|`,如果未设置则默认显示大杯`big`。 diff --git a/themes/itheme/archetypes/posts.md b/themes/itheme/archetypes/posts.md new file mode 100644 index 0000000..9506225 --- /dev/null +++ b/themes/itheme/archetypes/posts.md @@ -0,0 +1,10 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +description: "" +draft: true +author: "" +cover: "" +tags: [""] +theme: "dark" +--- diff --git a/themes/itheme/assets/js/algolia.js b/themes/itheme/assets/js/algolia.js new file mode 100644 index 0000000..47e65d4 --- /dev/null +++ b/themes/itheme/assets/js/algolia.js @@ -0,0 +1,78 @@ +import { params, baseURL } from "@params" + +const {appid, appkey, searchindex: indexName, enabled} = params.algolia + +const searchClient = algoliasearch(appid, appkey); +const { autocomplete, getAlgoliaResults } = window['@algolia/autocomplete-js']; + +function initAlgolia(){ + autocomplete({ + container: '#autocomplete', + getSources({ query }) { + return [ + { + sourceId: 'products', + getItems() { + return getAlgoliaResults({ + searchClient, + queries: [ + { + indexName, + query, + params: { + attributesToSnippet: ['name:10', 'description:35'], + }, + }, + ], + }); + }, + templates: { + item({ item, components, html }) { + return html`<a class="aa-ItemWrapper" href="${baseURL}${item.uri}"> + <div class="aa-ItemContent"> + <div class="aa-ItemContentBody"> + <div class="aa-ItemContentTitle"> + ${components.Highlight({ + hit: item, + attribute: 'name', + })} + </div> + <div class="aa-ItemContentDescription"> + ${components.Snippet({ + hit: item, + attribute: 'description', + })} + </div> + </div> + <div class="aa-ItemActions"> + <button + class="aa-ItemActionButton aa-DesktopOnly aa-ActiveOnly" + type="button" + title="Select" + > + <svg + viewBox="0 0 24 24" + width="20" + height="20" + fill="currentColor" + > + <path + d="M18.984 6.984h2.016v6h-15.188l3.609 3.609-1.406 1.406-6-6 6-6 1.406 1.406-3.609 3.609h13.172v-4.031z" + /> + </svg> + </button> + </div> + </div> + </a>`; + }, + } + }, + ]; + }, + }) + document.querySelector("#autocomplete input").focus() +} + +if(enabled){ + initAlgolia() +} diff --git a/themes/itheme/assets/js/initPost.js b/themes/itheme/assets/js/initPost.js new file mode 100644 index 0000000..db04238 --- /dev/null +++ b/themes/itheme/assets/js/initPost.js @@ -0,0 +1,134 @@ +import params from "@params" +// console.log("postInit.js loaded"); +var scriptMd5 = document.createElement("script"); +scriptMd5.src = `${params.baseURL}js/md5.js`; +document.head.appendChild(scriptMd5); + +scriptMd5.onload = function () { + // console.log("md5.js loaded") + // step1. sythx highlighting + syntaxHighlight(); + // step2. lazyload + initLazyLoad(); +} + +function initLazyLoad() { + var script = document.createElement("script"); + script.src = `${params.baseURL}js/animation.js`; + document.head.appendChild(script); + + script.onload = function () { + // console.log("lazyload.js loaded"); + + animationElementName = ".image-load"; + + // Hook the loadImage function + loadImage = (index) => { + if (index >= imageElements.length) return; + + let image = imageElements[index]; + image.src = image.dataset.src; + let img = new Image(); + img.src = image.src; + + // if the image is loaded or not loaded, load the next image + img.onload = function () { + loadImage(index + 1); + }; + img.onerror = function () { + loadImage(index + 1); + } + } + + loadAnimation = (item) => { + if(item.classList.contains("image-loaded")) return; + let grandSon = item.children[0].children[0]; + let img = new Image(); + img.src = grandSon.src; + let sign = md5(grandSon.src); + + let target = document.getElementById(`lht${sign}`) + if (!target) { + // If an absolute path is used as the image link, such as "/static/img.png", + // the URL of grandSon.src will become "https://example.com/static/img.png", resulting in a different md5. + // Therefore, we attempt to handle this situation by trying again with the absolute path. + const a = document.createElement('a'); + a.href = grandSon.src; + sign = md5(a.pathname); + } + + img.onload = function () { + let percent = ((img.height / img.width) * 100).toFixed(5); + var style = document.createElement("style"); + style.innerHTML = renderStyle(sign, percent); + let target = document.getElementById(`lht${sign}`) + + if (!target) return; + + target.parentNode.insertBefore(style, target); + item.classList.remove("image-load"); + item.classList.add("image-loaded"); + } + + } + + initImage(); + }; +} + + +function renderStyle(sign, percent) { + return ` + .image-${sign} { + width: 100%; + padding-top: ${percent}%; + height: auto; + } + + @media only screen and (max-width: 1068px) { + .image-${sign} { + width: 100%; + padding-top: ${percent}%; + height: auto; + } + } + + @media only screen and (max-width: 734px) { + .image-${sign} { + width: 100%; + padding-top: ${percent}%; + height: auto; + } + };` +} + +function syntaxHighlight() { + var script = document.createElement("script"); + script.src = "//cdn.staticfile.org/highlight.js/11.7.0/highlight.min.js"; + document.head.appendChild(script); + + var styleLight = document.createElement("link"); + styleLight.rel = "stylesheet"; + styleLight.href = "//cdn.staticfile.org/highlight.js/11.7.0/styles/stackoverflow-light.min.css"; + + var styleDark = document.createElement("link"); + styleDark.rel = "stylesheet"; + styleDark.href = "//cdn.staticfile.org/highlight.js/11.7.0/styles/stackoverflow-dark.min.css"; + + if (document.querySelector("body").classList.contains("theme-dark")) { + document.head.appendChild(styleDark); + } else { + document.head.appendChild(styleLight); + } + + script.onload = function () { + // console.log("hljs.js loaded"); + // 忽略未转义的HTML警告,自己的md文档默认可信 + hljs.configure({ + ignoreUnescapedHTML: true + }); + document.querySelectorAll('pre code').forEach((el) => { + hljs.highlightElement(el); + }); + }; +} diff --git a/themes/itheme/config.toml b/themes/itheme/config.toml new file mode 100644 index 0000000..d68d638 --- /dev/null +++ b/themes/itheme/config.toml @@ -0,0 +1,4 @@ +[params] + ShowCopyRight = true + ShowMore = true + ShowRSS = true
\ No newline at end of file diff --git a/themes/itheme/exampleSite/config.toml b/themes/itheme/exampleSite/config.toml new file mode 100644 index 0000000..34fb6c6 --- /dev/null +++ b/themes/itheme/exampleSite/config.toml @@ -0,0 +1,23 @@ +baseURL = '/' +languageCode = 'en' +defaultContentLanguage = "en" +hasCJKLanguage = true +title = 'Apple Newsroom' +copyright = 'Floyd Li' +theme = 'hugo-theme-itheme' +paginate = 5 +[params] + defaultCover = 'https://www.apple.com.cn/newsroom/images/apple-logo_black.jpg.landing-regular_2x.jpg' + email = 'floyd.li@outlook.com' + [[params.socialMedia]] + name = 'Github' + url = 'https://github.com/floyd-li' + [[params.socialMedia]] + name = 'Twitter' + url = 'https://twitter.com/some-one' + [[params.blogroll]] + name = '驭风笔记' + url = 'https://yufengbiji.com/' + [[params.blogroll]] + name = 'Apple' + url = 'https://apple.com/' diff --git a/themes/itheme/exampleSite/content/about.md b/themes/itheme/exampleSite/content/about.md new file mode 100644 index 0000000..5267fa2 --- /dev/null +++ b/themes/itheme/exampleSite/content/about.md @@ -0,0 +1,10 @@ +--- +title: '关于我们' +plain: true +theme: 'light' +--- +苹果公司(英语:Apple Inc.),原称苹果电脑公司(英语:Apple Computer, Inc.),是源自美国的跨国科技公司,总部位于美国加州的库比蒂诺,与亚马逊、谷歌、微软、Meta并列为五大科技巨擘。目前的业务包括设计、研发、手机通讯和销售消费电子、计算机软件、在线服务和个人计算机。 + +1976年4月,史蒂夫·乔布斯、斯蒂夫·沃兹尼亚克和罗纳德·韦恩创立了苹果公司,目的是为了研发和销售沃兹尼亚克Apple I个人电脑,但韦恩12天后就放弃了自己的股份。1977年1月,正式确定公司名称为“苹果电脑公司”,包括Apple II在内的电脑销量迅速增长。几年之内,乔布斯和沃兹尼亚克就聘雇了一批电脑设计师,并拥有了一条生产线。1980年,苹果公司上市,迅速获得了财务上的成功。在接下来的几年里,苹果公司推出了具有图形用户界面的新电脑,如1984年推出的Macintosh 128K,同时苹果公司的产品营销广告得到广泛好评。然而,其产品的高单价和有限的应用程序引发了诸多问题,其高管之间的权力斗争不断。1985年,沃兹尼亚克离开了苹果公司,继续担任名誉雇员,而乔布斯和其他人则辞职成立了NeXT公司。1996年,苹果收购NeXT公司,贾伯斯于隔年重返苹果公司,率领苹果公司成为科技巨擘。 + +该公司最著名的硬件产品有iPhone智能手机、iPad平板电脑、Mac个人电脑、iPod音乐播放器、Apple Watch智能手表、Apple TV媒体播放器 、AirPods无线耳机和HomePod智能音箱、游戏机 Pippin atmark ;软件有macOS、iOS、iPadOS、watchOS和tvOS五大操作系统、iTunes播放器、Safari网页浏览器 、Shazam音乐识别,还有iLife和iWork创意和生产力套件,以及Final Cut Pro、Logic Pro和Xcode等专业软件;在线服务有iTunes Store、iOS App Store、Mac App Store、Apple Music、Apple TV+、iMessage和iCloud。苹果公司还有其他一系列服务包括Apple Store、Genius Bar、AppleCare、Apple Pay、Apple Pay Cash和Apple Card等。 diff --git a/themes/itheme/exampleSite/content/posts/apple-introduces-the-new-homepod-with-breakthrough-sound-and-intelligence.md b/themes/itheme/exampleSite/content/posts/apple-introduces-the-new-homepod-with-breakthrough-sound-and-intelligence.md new file mode 100644 index 0000000..13f95de --- /dev/null +++ b/themes/itheme/exampleSite/content/posts/apple-introduces-the-new-homepod-with-breakthrough-sound-and-intelligence.md @@ -0,0 +1,87 @@ +--- +title: "Apple 推出新款 HomePod,带来突破性音质与智能体验" +date: 2023-02-27T13:06:38+08:00 +description: "呈现出类拔萃的音质、增强的 Siri 功能以及安全放心的智能家居体验" +author: "Apple Newsroom" +tags: ["新闻稿", "Apple", "HomePod"] +theme: "light" +featured: true +cover: "https://www.apple.com.cn/newsroom/images/product/homepod/standard/Apple-HomePod-hero-230118_big.jpg.large_2x.jpg" +--- + + +加利福尼亚州,库比提诺Apple 今日宣布推出 HomePod(第二代)。这款功能强大的智能扬声器采用优美的标志性设计,为用户带来新一代声学体验。HomePod 汇集了多项 Apple 创新技术与 Siri 智能,提供先进计算音频技术,支持播放沉浸式空间音频曲目,呈现前所未有的聆听体验。HomePod 带来管理日常任务、控制智能家居的便利新方式,用户可以使用 Siri 创建智能家居自动化功能,在家中触发烟雾或一氧化碳警报时获得通知,或者查看房间的温度与湿度——以上操作不必动手就能完成。 +新款 HomePod 从今日起可在线或通过 Apple Store app 订购,2 月 3 日(周五)起正式发售。 + +“利用我们的专业音频技术和创新,新款 HomePod 可呈现醇厚深沉的低音、自然的中音和清澈细腻的高音。”Apple 全球市场营销高级副总裁 Greg Joswiak 表示,“随着 HomePod mini 大受欢迎,我们看到用户对体积更大、声学表现更强劲的 HomePod 兴趣也与日俱增。我们很高兴能为全球各地的顾客带来新一代 HomePod。” + +## 优美设计 + +新款 HomePod 的外观由无缝透声织网和背光触控板构成,优美的设计与各种空间相得益彰。HomePod 提供白色与全新的午夜色两种外观,后者由 100% 再生织物构成,配有同色系编织电源线。 + + + +## 强劲的声学表现 + +HomePod 呈现出类拔萃的音质,低音醇厚深沉,高频惊艳动人。定制研发的高振幅低音单元、振幅高达惊人的 20 毫米的强劲电机驱动振膜、内置低音均衡器麦克风、底部环绕着由 5 个波束成形高音单元组成的阵列,共同打造强大的声学体验。S7 芯片结合软件和系统感应技术,提供更加先进的计算音频,彻底发挥声学系统的全部潜能,呈现前所未有的聆听体验。 + + + +利用室内空间感应技术,HomePod 可识别附近表面反射的声音,判断是否靠近墙壁等表面,并对音频进行实时调整。5 个高音单元组成的波束成形阵列利用精确指向控制分离与定向传送直达声和环境声,让用户在清澈的人声和醇美的器乐声中尽情沉醉。 + +用户可聆听 Apple Music 曲库中的数千万首歌曲1,通过单个 HomePod 或用两个 HomePod 组成立体声组合享受空间音频。用户可以通过 Siri 了解各种音乐知识,并根据艺人、歌曲、歌词、年代、类型、心情或活动搜索音乐。 + +多个 HomePod 带来更出色的体验 两个及更多 HomePod 或 HomePod mini 可解锁一系列强大功能。利用支持多房间音频的隔空播放技术2,用户只要说“嘿 Siri”,或者触碰并按住 HomePod 顶部,就能用多个 HomePod 播放同一首歌曲,或在不同 HomePod 上播放不同歌曲,甚至使用多个 HomePod 进行广播,传话到各个房间。 +用户还可以把两个 HomePod 放在一起,组成立体声组合3。立体声组合不但可以分离左右声道,还能和谐地播放双声道音频,营造比传统立体声扬声器更宽广、更具沉浸感的声场,呈现出类拔萃的聆听体验。 + + + +## 无缝整合 Apple 生态系统 + +利用超宽带技术,用户可以将 iPhone 上播放的任何声音,如喜爱的歌曲、播客甚至通话直接转移到 HomePod4。房间中的任何人都可以拿着 iPhone 靠近 HomePod,播放建议会自动出现在 iPhone 屏幕上,从而轻松控制音频播放或获取个性化歌曲与播客推荐。HomePod 还能识别最多 6 个用户的语音,让所有家庭成员都能轻松聆听## 私人歌单、设置提醒和日历事项。 + +HomePod 的“查找”功能可以让遗落的设备播放声音,帮用户定位 iPhone 等 Apple 设备。用户还能向 Siri 询问好友或家人的位置(需要对方在“查找”app 中选择共享自己的位置)。 + + + +## 智能家居必备 + +依托声音识别功能5,HomePod 可以听到烟雾或一氧化碳警报声,识别出此类声音后,直接向用户的 iPhone 发送通知。全新的内置温度和湿度感应器可衡量室内环境,让用户设置自动化操作,例如房间内到达一定温度时关上窗帘,或者打开风扇。 + +通过 Siri,顾客无需动手就能控制单一设备,或者创建场景,例如让多个智能家居设备在早上同时开始工作,或者设置反复出现的自动化操作,例如“嘿 Siri,每天早晨日出时打开窗帘6”。当用户通过 Siri 操控暖气等未能以肉眼分辨是否已开关的配件,或者操控位于不同房间的配件时,HomePod 会发出新的确认音效。经过重制的海洋、森林、雨声等环境音效将进一步整合到体验中,让顾客可以为场景、自动化和警报添加新的声音。 + +用户也可以在重新设计的家庭 app 中直观地操控、查看和管理配件。家庭 app 提供了“环境”、“灯”和“安全”等新类别,并提供全新多机位视图,让用户轻松设置和控制智能家居。 + + + +## Matter 支持 + +去年秋季推出的 Matter 连接标准确保智能家居产品在跨生态系统工作时保持最高级别的安全。Apple 是 Connectivity Standards Alliance(连接标准联盟)成员,该联盟与其他行业领导者一起维护 Matter 智能家居连接标准。HomePod 可连接并支持 Matter 的配件,担任家居中枢,让用户出门在外也能远程控制。 + +## 顾客数据属于私有财产 + +保护顾客隐私始终是 Apple 的一项核心价值观。所有智能家居设备之间的通信始终保持端到端加密,包括 HomeKit 安防视频摄像头录制的内容,均无法被 Apple 读取。使用 Siri 时,请求音频默认不会被存储。这些功能确保让用户居家隐私得到保障。 + +## HomePod 与环境 + +HomePod 致力于最大程度地降低对环境的影响,在多个印刷电路板的电镀层中使用 100% 再生金(对 HomePod 而言尚属首次),且在扬声器磁体中使用 100% 再生稀土元素。HomePod 符合 Apple 对能效的严苛标准,且不含汞、溴化阻燃剂(BFR)、聚氯乙烯(PVC)和铍。经重新设计的包装材料不再使用塑料外膜,96% 的包装材料采用纤维基,让 Apple 更加接近 2025 年底前在包装中完全去除塑料的目标。 + +目前 Apple 已实现全球公司运营碳中和,并计划到 2030 年实现全部供应链和所有产品生命周期 100% 碳中和。这意味着每一部售出的 Apple 设备,从零件制造、组装、运输、用户使用、充电,直到设备和材料回收的所有环节,都将实现净零气候影响。 + +## 价格与上市时间 + +HomePod(第二代)售价为 RMB 2299 (中国大陆),今日起通过 apple.com.cn/store 及 Apple Store app 对澳大利亚、加拿大、中国大陆、法国、德国、意大利、日本、西班牙、英国、美国及其他 11 个国家和地区的顾客开放订购,并于 2 月 3 日(周五)起正式发售。 +HomePod(第二代)支持运行 iOS 16.3 或后续系统的 iPhone SE(第二代)及后续机型或 iPhone 8 及后续机型;运行 iPadOS 16.3 的 iPad Pro、iPad(第五代)及后续机型、iPad Air(第三代)及后续机型或 iPad mini(第五代)及后续机型。 +购买 HomePod 的新用户,即可获享 6 个月 Apple Music 免费订阅服务。 + +## 关于 Apple + +Apple 于 1984 年推出 Macintosh,为个人技术带来了巨大变革。今天,Apple 凭借 iPhone、iPad、Mac、Apple Watch 和 Apple TV 引领全球创新。Apple 的 5 个软件平台,iOS、iPadOS、macOS、watchOS 和 tvOS,带来所有 Apple 设备之间的顺畅使用体验,同时以 App Store、Apple Music、Apple Pay 和 iCloud 等突破性服务赋予人们更大的能力。Apple 的 100,000 多名员工致力于打造全球顶尖的产品,并让世界更加美好。 + +## Apple Music 需要订阅 + +多房间音频需要多个 HomePod 或支持隔空播放并运行最新版本隔空播放软件的扬声器。 +组建 HomePod 立体声组合需要两个相同型号的 HomePod 扬声器,例如两个 HomePod mini,两个 HomePod(第二代)或两个 HomePod(第一代)。 +在 iPhone 上使用接力功能需运行 iOS 16.3。 + +声音识别功能会在今春稍晚通过软件更新推出。声音识别功能可以探测烟雾和一氧化碳警报声,并在识别后向用户发送通知。当用户身处可能受到伤害的环境中,或在高风险或紧急情况下,均不应依赖声音识别功能。声音识别功能需要更新版家庭架构,该架构将在家庭 app 的独立更新中推出。它要求所有连接家居配件的 Apple 设备均使用最新版本软件。智能家居配件需单独购买。 diff --git a/themes/itheme/exampleSite/content/posts/apple-launches-freeform-a-powerful-new-app-designed-for-creative-collaboration.md b/themes/itheme/exampleSite/content/posts/apple-launches-freeform-a-powerful-new-app-designed-for-creative-collaboration.md new file mode 100644 index 0000000..6101ddc --- /dev/null +++ b/themes/itheme/exampleSite/content/posts/apple-launches-freeform-a-powerful-new-app-designed-for-creative-collaboration.md @@ -0,0 +1,52 @@ +--- +title: 'Apple 推出为头脑风暴和创意协作设计的全新强大 app 无边记' +date: '2023-02-27T13:06:38+08:00' +draft: true +description: 'iPhone、iPad 及 Mac 版无边记让视觉化协作更轻松。' +author: 'Apple Newsroom' +cover: 'https://www.apple.com.cn/newsroom/images/product/apps/standard/Apple-Freeform-hero_big.jpg.large_2x.jpg' +tags: ["新闻稿", "Apple", "无边记"] +theme: 'light' +featured: false +--- + + +无边记是一款全新 app,今日正式推出,包括 iOS、iPadOS 和 macOS 最新版本。无边记帮助用户在灵活多用的画布上管理并以视觉方式展示内容,在同一个地方查看、共享与协作,而不必考虑排版或页面大小问题。用户无需离开画板,即可添加不同类型的文件并实时预览。无边记为协作而设计,让用户更轻松地邀请他人在同一块白板上工作还能在 FaceTime 通话期间与他人协作。无边记白板存储在 iCloud 上,用户可以在不同设备间同步内容。 + +“无边记为 iPhone、iPad 和 Mac 用户进行视觉化协作开启了无限可能。”Apple 全球产品营销副总裁 Bob Borchers 表示,“无边记带来了无边无际的画布,支持上传多种不同类型的文件,集成了 iCloud,还提供了诸多协作功能,为用户随时随地创建头脑风暴的共享空间。” + +## 为创意设计的画布与易用工具 + +无边记为用户提供了绝佳的白板体验,在同一个地方汇聚灵感创意。无边无际的画布会随着内容添加到白板上而不断扩展,让用户在处理很多文件或与他人协作时获得无限灵活性。通过内置手势支持,用户可以在白板各处流畅转移。 + +这款 app 提供了多种画笔类型和颜色选项,供用户描绘创意、添加注释、绘制图表。iPhone 与 iPad 用户可以在画布上的任意地方用手指作画;无边记还支持 Apple Pencil,让用户更轻松地随时随地在 iPad 上描绘灵感。 + + + +iPad Pro 上的无边记中展示着随手写笔记和一系列绘画工具。 +无论使用随手写记笔记、用绘画工具画图、用蜡笔或填充工具填色,无边记用户都能让创意进入新境界。 +无边记支持大量文件类型,包括照片、视频、音频、文档、PDF、网站链接和地图地点链接、便签、图形、图表等等。用户还可以利用 iPhone 和 iPad 摄像头直接在白板中插入图片或扫描文档。无边记还提供了全面的图形素材库,包括 700 多种可选图形,用户可以改变这些图形的颜色和大小、添加文本,甚至创建个性化图形。 + +用户可以将内容从文件和访达等 app 拖放至画板,并通过内置对齐指导轻松保持画板整洁有序。用户只需轻点两下,不必离开画板即可通过速览预览内容,还能同时播放多个视频文件,创建动态视图。图片和 PDF 等内容可以在画板上锁定位置,协作者可以在对象上方或周围添加注释,这意味着无边记极为适合用来为建筑平面图或家装计划描绘灵感,或者供教练在篮球战术板上布置战术。 + +iPad Pro 的无边记画板支持多种类型的文件。 +无边记画板支持多种类型的文件,用户无需离开画板即可实时预览,特别适合为学校项目汇集文档或者规划下一次旅行。 + + + +## 协作空间 + +无论用户在办公室或是出门在外,无论是独立工作还是与他人协作,无边记都能派上大用场。无边记支持多人在同一块白板上协作,为集体项目或与好友规划度假方案创造共享创意空间。 + +利用信息 app 的全新协作功能,用户只需将无边记画板拖入信息对话串就能邀请他人在白板上展开协作。对话串的所有成员都会自动被邀请加入画板,马上开始协作。有人编辑内容后,活动更新会出现在信息对话串顶部。 + +这款 app 内置了 FaceTime 通话功能,用户使用无边记时,轻点屏幕右上角的协作按钮,即可发起 FaceTime 通话。依托快速同步功能和 iCloud 集成,所有协作者都可以查看其他人添加的内容或者改动。无边记白板会在 iPhone、iPad 和 Mac 间同步,用户可以通过链接或电子邮件邀请他人,还能以 PDF 格式导出画板,或者截取屏幕。 + +iPad Pro 上,无边记正在使用 FaceTime 通话协作功能。 +依托 FaceTime 和 iCloud 集成,无边记为协作而设计,帮助用户更轻松地邀请他人在画板上共同工作。 + + + +## 推出时间 + +今日起,所有支持 iOS 16.2、iPad OS 16.2 或 macOS Ventura 13.1 的 iPhone、iPad 及 Mac 均可免费下载无边记。 diff --git a/themes/itheme/exampleSite/content/posts/apple-reports-first-quarter-results.md b/themes/itheme/exampleSite/content/posts/apple-reports-first-quarter-results.md new file mode 100644 index 0000000..ee6d46a --- /dev/null +++ b/themes/itheme/exampleSite/content/posts/apple-reports-first-quarter-results.md @@ -0,0 +1,18 @@ +--- +title: 'Apple 公布第一季度业绩' +date: '2023-01-17T13:06:38+08:00' +description: '活跃设备现有使用量突破 20 亿大关,在所有主要产品类别均创下历史新高' +author: 'Apple Newsroom' +draft: true +cover: 'https://www.apple.com.cn/newsroom/images/apple-logo_black.jpg.landing-regular_2x.jpg' +tags: ["新闻稿", "Apple", "财报"] +theme: 'light' +--- + +加利福尼亚州,库比提诺 Apple 今日发布了截至 2022 年 12 月 31 日的 2023 财年第一季度财务业绩。公司公布本季度营收达到 1172 亿美元,同比下降 5%。本季度稀释后每股收益为 1.88 美元。 + +“在继续应对挑战性环境的同时,我们很自豪能推出迄今最出色的产品和服务。与以往一样,我们继续致力于放眼长远,在一切行动中贯彻我们的价值观。”Apple CEO Tim Cook 表示, “在 12 月季度,我们达成了一项里程碑式的成就:我们很高兴地宣布,我们的活跃设备现有使用量已经突破 20 亿大关。” + +“我们的服务业务营收创下历史新高,达 208 亿美元。尽管宏观经济环境不景气且供应严重受限,按固定汇率计算的公司营收仍然有所增长。”Apple CFO Luca Maestri 表示,“我们本季度创造了 340 亿美元的经营现金流,向股东返还了超过 250 亿美元,并继续投资支持我们的长期增长计划。” + +Apple 董事会已宣布派发每股 0.23 美元的公司普通股现金股息。股息将于 2023 年 2 月 16 日派发给所有在 2023 年 2 月 13 日收市时已登记在册的股东。 diff --git a/themes/itheme/exampleSite/content/posts/apple.md b/themes/itheme/exampleSite/content/posts/apple.md new file mode 100644 index 0000000..c450953 --- /dev/null +++ b/themes/itheme/exampleSite/content/posts/apple.md @@ -0,0 +1,84 @@ +--- +title: '从农场到海洋:保育红树林,维系当地人生计,保护地球 ' +date: '2023-03-01T13:06:38+08:00' +draft: true +description: 'Apple 与 Applied Environmental Research Foundation 合作,将促进印度马哈拉施特拉邦红树林的保育工作' +author: 'Apple Newsroom' +cover: 'https://www.apple.com.cn/newsroom/images/values/environment/Apple-Earth-Day-India-mangrove-Alibaug-canoe_Full-Bleed-Image.jpg.large_2x.jpg' +tags: ["特写", "环保", "Apple", "印度", "红树林", "保育", "新闻稿"] +theme: 'dark' +--- + + + +在马哈拉施特拉邦繁华的滨海城市孟买以南仅约 96 公里的地方,出现了一个截然不同的世界。繁华都市的摩天大厦、餐厅、酒店、购物区、不计其数的“嘟嘟车”与现代汽车逐渐消失,未铺装的道路、棕榈树、山羊、拉车的牛、小型露天市场和路边餐馆出现在视野里。 + +Raigad 县的 Alibaug 连接了孟买与通向阿拉伯海的河网。海岸地区长有 21000 公顷红树林。红树林是地球最为天然的守护者之一,能够抵御气候变化带来的种种影响,包括突如其来的暴雨、海潮上升、热带气旋或飓风,甚至海啸。同时,红树林还能起到碳汇的作用,吸收大气中的二氧化碳,并将其存储在土壤、植物和其他沉积物中,这一机制被称为“蓝碳”。 + +Applied Environmental Research Foundation(AERF)在 2021 年获得了 Apple 的资助。该组织正在这一地区进行探索,计划通过在当地社区中创设可持续的替代行业,来培育红树林生态系统的生物多样性与适应能力并从中受益,从而保护红树林的未来。保护协议将向当地村民提供持续性支持,以换取对土地的保护,并促进当地经济转型,使之有赖于保持红树林的完好与健康。 + + + + + +AERF 还将从保护国际基金会(Conservation International)2018 年启动的哥伦比亚 Cispatá 试行蓝碳项目获得的经验应用到印度的红树林。 + +“对抗气候变化,是在为全球各地受这场危机影响最严重的社区而奋斗。从哥伦比亚到肯尼亚,再到菲律宾,人们的生活和生计饱受气候变化的威胁,这也正是我们工作的重点。”Apple 环境、政策与社会事务副总裁 Lisa Jackson 表示,“我们在印度的新的合作项目延续了这一努力,帮助当地社区从红树林的保育中收获经济利益,并抵御气候变化的恶劣影响。” + +AERF 主席 Archana Godbole 从小就热爱大自然。“植物代表了年龄与时间,”她表示,“而树木则代表了耐心。它们是时间的无声观众——我越是研究树木、了解树木,就越在它们面前感到渺小。我的经历让我逐渐意识到,我想为保护和拯救树木与森林而工作。” + + + + +专业植物分类学家 Godbole 在过去三十年间一直致力于以社区为基础的环保工作。在 Raigad 县,AERF 正在寻求与当地社区达成环保协议。由于海水侵袭和人造堤坝的损毁,当地居民的作物与农田的损失惨重。 + +“这里世代居住的人们本是农民,但突然之间海洋来到了他们的门口。”Godbole 说道,“人们学会了新的技巧,来应对新的局面。现在我们已经知道红树林在应对气候变化与碳封存方面作用非常重要。我们很高兴能来到这里,努力与当地居民合作,让红树林为他们带来更多福祉。我们满怀信心地期待,他们能够在心中建立与土地和红树林的深厚联系。” + +下面,我们可以看到这些村庄的面貌,以及被很多人称之为家的社区面对日益严峻的环境灾害所表现出的适应能力。 + + + +Karanjveera 是一个小型内陆村庄,也是许多农民和渔民及其家人的家园。当地渔民通常以捕捞小虾蟹为主。Namdev Waitaram More 是村里的长者,也是传统捕鱼技术的行家。75 岁高龄的 More 一生都与红树林和谐共处,并深深尊敬它们抵御海水侵袭稻田的保护能力。 + +More 正与表弟帮助其他社区成员与 AERF 联系,探讨村中盐沼和红树林保育问题。“红树林就像海绵。”他说道,“人们与这里的红树林关系密切。如果红树林没了,我们的堤坝就没了,我们的稻田也就没了。因为我们通过食物、堤坝和红树林相连,我们才得以生存。” + + + +Usha 和儿子 Tushar Thakur 都是 Hashiware 的农民。这个村庄位于 Amba 河畔,自从本地堤坝于 1990 年溃决后,这里的农田就一直淹没在海水之下。这里现已被红树林覆盖,但往日的残留依稀可见,遭弃置的房屋矗立在泥水中,距离河岸仅有几米。Thakur 是首批与 AERF 签订红树林保护协议的村民之一。 +从 1996 年开始,曾经属于 Hashiware 村农民的农田就已被红树林覆盖。 + +“通过我们的工作与对红树林重要性的警示,以及创造可持续创收活动的机会,我们为 Raigad 县的沿海社区带来了希望。”AERF 的 Godbole 介绍道。 + + + +红树林保护印度沿海村庄的能力在近年得到了展现。2004 年,印尼海底强烈地震引发的多重海啸对印度东海岸造成了冲击。从那时起,人们意识到红树林是本地社区的无声守护者,吸收着巨浪的震撼,保护着岸边的村庄。在过去几年间,强热带气旋越来越频繁地侵袭这一地区,包括 2020 年的 Nisarga 和 2021 年的 Tauktae。在 Raigad 县,村民们正在努力保护红树林,从而保护自己的生计与福祉。 + + + +在 Ganesh Patti 村,农民们同意各人负责一部分堤坝的维护,将农田与红树林和河岸分离。但个人的维护工作还不够。当地渔民 Mangesh Patil 的家现已毁坏,被红树林所围绕。海浪和越来越高的海潮逐渐毁掉了他的房子。 +但在这个已消失的村落的村民看来,一切似乎发生在一夜之间。 + +“一天晚上,大家都睡了,夜潮来了,突然之间海水侵入,我们的床铺都湿透了。第二天早晨,我们意识到,整个村子都被淹了。” +潮水退去后,居民们清点了土地和生计的损失——他们明白,自己必须从零开始了。迁移到邻近的村庄后,Patil 和他的兄弟等许多人都还是决定继续返回自己的老家,回到自己的印度教寺庙,在曾是儿时家园的水中捕鱼捞蟹。 + +“无论大自然给人类什么样的条件,我们都应该学会生存。”Patil 说道,“我们就是这样做的。现在,我们与这些红树林之间已经建立了联系。这里是我们出生的地方,我们在这里很开心。所以我们总是会回到这里。” + + + +在与当地村庄签署环保协议提供资金支持的同时,Apple 的拨款还将用于购买与分发便携生物质炉具,让人们不再需要砍伐红树林,也能生火做饭。 + + + + +来自 Pen Vashi 的渔民 Bhavik Patil 十分熟悉与红树林相关的生计,他帮助 AERF 在 Raigad 县的村庄中与村民探讨相关问题。出生在渔业家庭的 Patil 记得自己小时候,父母会在下河工作前,在红树上绑上秋千,让他和兄弟玩耍。现在,在捕鱼捞蟹之余,他也和很多人一起,与 Mothe Bhal 和 Vithalwadi 等村庄的村民就保护和可持续利用红树林的问题展开磋商。为了保护红树林,他和同伴请求村民收集从树木上自然掉落的干燥树枝。 + + + + +对 AERF 的许多成员来说,保护红树林不仅仅是一项工作,更是他们的激情所在。Godbole 和联合创始人 Jayant Sarnaik 27 年前创建了这个组织,并持续致力于通过当地人参与的方式实现环保使命。 + +“对于生活在近海地区的社区来说,构建抵御气候变化的适应能力是一项持续工作。”AERF 的 Sarnaik 表示,“这些社区在海岸生活了很长的时间,他们非常了解海洋,以及海洋和气候的关系。气候变化对他们来说并不是新鲜事;然而,他们在过去 5 到 10 年间也经历了剧烈的变化。近年的热带气旋让这里的人们认识到了红树林的重要性。面对这些灾害,红树林是最强有力的自然防线。同时,它也在更广泛的范围内唤醒了人们对于红树林重要意义的认识。 + +正如 Godbole 所言,未来值得期待。“与 Apple 和保护国际基金会的合作是一次绝佳的机会,探索红树林保育和社区福祉的互惠互利。”她表示。“虽然红树林保育问题在各地有所差异,但在我们的项目所在地,也存在着很多机遇。培训满怀热情的年轻团队和本地社区关于蓝碳的知识,定会帮助我们在阿拉伯海沿岸这一充满生机的地区实现红树林保育方面的长足进展。” + +Apple 致力于帮助全球各地受气候变化冲击最严重的社区培育适应能力,获取经济收益。去年,公司与保护国际基金会合作,支持创办了同类首创的“无法复原的碳金融实验室”,旨在保护全球最脆弱的生态系统,并与中国绿色碳汇基金会合作,资助相关研究及试行项目,在中国建立更多天然碳汇。此外,在世界地球日当周,顾客每次通过 apple.com、Apple Store app 或在 Apple Store 零售店使用 Apple Pay 购物,Apple 都将向世界自然基金会(WWF)捐出 1 美元。通过此举,Apple 向 WWF 的 Climate Crowd 项目提供支持。该项目旨在促进社区对环境变化的适应能力与可持续生计。 diff --git a/themes/itheme/exampleSite/content/posts/battle-testing-unreal-engine-5-1-s-new-features-on-fortnite-battle-royale-chapter-4.md b/themes/itheme/exampleSite/content/posts/battle-testing-unreal-engine-5-1-s-new-features-on-fortnite-battle-royale-chapter-4.md new file mode 100644 index 0000000..5391a3c --- /dev/null +++ b/themes/itheme/exampleSite/content/posts/battle-testing-unreal-engine-5-1-s-new-features-on-fortnite-battle-royale-chapter-4.md @@ -0,0 +1,118 @@ +--- +title: 'UE5.1新功能在《堡垒之夜:大逃杀》第四章中的实战测试' +date: '2022-10-27T13:06:38+08:00' +draft: true +description: '在这篇博客文章中,我们将着眼于一些虚幻引擎5功能,它们得益于《堡垒之夜:大逃杀》第四章的检验,已经变得更加完善了;我们还据此对UE 5.1做出了改进,这将帮助你创建更加精致和快速的开放世界游戏。' +author: '虚幻引擎官网' +cover: 'https://cdn2.unrealengine.com/unreal-engine-5-1-features-for-fortnite-chapter-4-header-1920x1080-2e96869442d6.jpg?resize=1&w=1920' +tags: ["功能", "虚幻引擎", "游戏"] +theme: 'dark' +--- + + + + +十二月初,当《堡垒之夜:大逃杀》第四章第一赛季发布时,玩家很难不注意到视觉保真度和细节得到了质的提升。这并不是巧合,通过虚幻引擎5.1,游戏的最新章节利用了虚幻引擎5最具创新性的全新功能,如Lumen、Nanite、虚拟阴影贴图和时序超级分辨率等等。 + +《堡垒之夜:大逃杀》第四章出色地展示了Epic Games“吃自家狗粮”的决心,我们在真正的游戏开发压力下对新功能做出了实战测试。这一举措促使我们改进了在UE 5.0中引入的创新功能集,它们随后被交付给了《堡垒之夜》团队使用。 + +我们之前通过《黑客帝国觉醒:虚幻引擎5体验》对UE5中的功能进行了测试,在最新一代的主机上以30FPS的帧率展示了一座逼真的城市。在《堡垒之夜:大逃杀》第四章中,开发团队面临着新出现的挑战:确保游戏在所有平台上以60FPS的帧率运行,同时在以建设和破坏为特色的大型动态开放世界中提供当今玩家所期望的质量——高标准的风格化画面、精致的植被以及昼夜循环。 + +在这篇博客文章中,我们将着眼于一些在第四章中得到检验并因此获益良多的功能。我们还会提供一些深层次文章的链接,它们更加详细地介绍了我们对Lumen、Nanite和虚拟阴影贴图的改进,探讨了我们从《堡垒之夜:大逃杀》第四章的工作中所汲取的经验,我们相信这些经验将有助于你使用虚幻引擎5创建更加精致、快速的开放世界游戏。 + +## Lumen + +Lumen是虚幻引擎5中新引入的实时全局光照和反射解决方案。Lumen使用硬件和软件光线追踪提供逼真的间接反射光照、反射和阴影,它们能够对直接光照和几何体的变化做出动态反应。举例而言,你可以通过Lumen实现:一面蓝色的墙,为附近所有物体或角色带来一丝蓝色色调;黄金时刻的阳光穿过一扇窗户,在没有任何局部光源的情况下照亮整间房屋;当一扇外门被打开时,光线进入房间。 + +我们针对《堡垒之夜:大逃杀》第四章,在虚幻引擎中改进了Lumen的许多方面。我们优化了整个系统,使我们能够在支持Lumen的平台上实现60FPS的帧率,同时极大地提高间接光照和反射的质量。 + +《堡垒之夜》的世界充满了树木和草地,这是一片理想的试验场,让我们能够改进Lumen间接光照在这类环境中的质量。 + + + + +## Nanite +Nanite彻底改变了美术师和设计师构建虚拟世界的方式,它在突破几何细节极限的同时也简化了创作过程。美术师不再需要考虑网格体LOD或给定对象的正确多边形数量,即可实现最佳视觉质量和性能。 + +在UE 5.0中,Nanite出色地实现了不透明的刚性几何体,《堡垒之夜》的城市环境充分利用了这一点。无论镜头拉得多近,经过建模的砖块、木材和窗户装饰都能展示复杂的细节。 + +从UE 5.1开始,Nanite支持了全局位置偏移和遮罩材质,《堡垒之夜》的美术师能够在极精致的动画树木和树叶上使用这项技术。树叶和草叶被建模成了随风自然摇曳的几何体。为了确保在任意渲染距离都能保留所有重要的茂盛细节,我们还引入了一种让Nanite简化植被几何体的新方法。 + + + +## 虚拟阴影贴图 + +虚拟阴影贴图(VSM)与Nanite相结合,将美术师在《堡垒之夜:大逃杀》第四章中添加的所有复杂几何细节凸显了出来。与传统的级联阴影贴图相比,VSM最大的优势在于,无论物体是近在玩家眼前,还是远在地平线上,它都能提供接近像素级精度的阴影细节。 + +新的《堡垒之夜》几何体为我们带来了一个难题:我们需要进一步改进VSM,使其与植被及当日时间动态系统相配合——对于我们之前为提高性能而采用的许多阴影缓存方案来说,此二者成了一道阻碍。当然,这一切都必须符合60FPS的预算。 + +《堡垒之夜》现在也在室内使用了许多较小的局部光源,如电灯或天花板顶灯。VSM缓存在这些地方表现出色。像这样大量使用局部光源让我们有机会在UE 5.1中进一步提高VMS的性能。我们可以通过“单通道投射”选项单次批量化处理许多光源的阴影更新,从而提高GPU的利用率。我们还建立了启发式方法,将远距离光源的阴影更新分摊到多个帧中。 + + + +## 局部曝光 +Lumen允许美术师创造出对比度极高的场景,例如,在非常暗的房间中透过窗户看到明亮的室外,或者在同一视图中,房屋表面被明亮的天空和太阳照亮,而室内几乎漆黑一片。对于这种视图,单一的曝光值效果不佳:明亮区域最终会出现过度曝光,而黑暗区域则会近乎全黑,无法看清。 + +UE5中的曝光系统针对《堡垒之夜:大逃杀》第四章做出了改进,提供了更多工具让美术师实现其所需的美术方向,同时也带来了更出色的性能。美术师现在可以分别控制局部曝光在高光和阴影中的应用,这有助于在高动态范围光照条件下保留细节。除此之外,局部曝光与后期处理管线中的其他部分(尤其是泛光和镜头光斑)更加深入地整合到了一起,使结果更加一致。 + +我们还新支持了在忽略材质属性的同时,基于照度计算自动曝光。这有助于材质在不同的光照条件下保持外观的一致,并提高游戏过程中的图像稳定性。 + +## 时序超级分辨率 +时序超级分辨率(TSR)通过将一些成本高昂的渲染计算分摊到多个帧中,使我们能够大幅削减渲染漂亮4K图像的成本。考虑到《堡垒之夜:大逃杀》第四章60FPS的目标,我们需要对TSR做出许多性能和质量上的优化。因此,UE 5.1中的TSR比我们在UE 5.0中发布的版本更好,也更快。我们还改进了TSR依据配置文件(低级、中级、高级和史诗级)对性能和质量的调整范围。 + +我们会在即将发布的一篇博客文章中深入探讨这些改进的技术细节。 + +## 云层 +为了配合《堡垒之夜:大逃杀》第四章中视觉保真度的飞跃,我们改进了虚幻引擎5.1中云层渲染的质量。为了满足严格的性能预算,UE5在内部会以较低的分辨率渲染云层,并对其进行向上采样。以前,这会导致遮挡了背景云层的前景网格体周围产生不完整的边缘,致使明亮的天空颜色在边缘处渗透出来。在UE 5.1中,我们可以更好地解决全分辨率下云层向上采样的问题,不会出现这种渗透。我们还改进了当网格体从云层前穿行而过时,对云层的时序重建工作,有效地减少了因移除遮挡而产生的尾迹。 + + + +## Niagara +《堡垒之夜》利用Niagara视效系统创造了由美术师主导的程序化破坏效果。Niagara能够对游戏做出反应,每当武器击中目标时,都能生成并准确模拟飞溅的碎片。 + +《堡垒之夜:大逃杀》第四章中新推出的高保真火焰使用基于体素的传播机制,更好地表现了火焰在表面和地形上的蔓延,同时还支持在载具及物理对象间传播火焰。为了正确放置火焰,并将其对准到燃烧表面,该系统使用了在引擎内部经过烘焙的Niagara流体模拟,并将其应用到了Niagara粒子中(数据读取自火焰游戏系统)。 + + + +## 对世界构建的支持 +随着第四章的发布,《堡垒之夜:大逃杀》现在在每个平台上都使用了UE5最新的世界构建和自动流送解决方案。其中包括世界分区、数据层、关卡实例、自动HLOD以及一Actor一文件。这套工具集有助于建立更具协作性的工作流程,并提升关卡设计师和美术师构建世界的效率。 + +与《堡垒之夜》之前版本中使用的自定义流送解决方案相比,目前方案最大的一个不同之处是,新的世界分区系统实现了自动化,开发者需要付出的时间更少了,同时,HLOD的过渡也更加稳定,提供了更好的整体游戏体验。 + +第四章包含超过10万个Actor文件,为了更有效地处理如此之多的文件,我们改进了变更列表窗口,增加了新的用户体验和新的非受控变更列表类型,并将它与场景大纲视图和主视口更好地集成在了一起。 + +为了给第四章提供支持,我们做的进一步改进是在寻路网格体(静态和动态)的生成功能中添加对世界分区的支持。这意味着你可以加载一个世界单元,为其生成寻路网格体,将其序列化,然后卸载该单元并继续处理下一单元。 + +在UE 5.1中,所有开发者都可以使用这些经过改进的功能,并且,随着《堡垒之夜》团队不断对这些功能展开实战测试,我们可以期待在未来版本中看到进一步的改进。 + + + + +## 智能对象和状态树 +智能对象允许AI在关卡中选择一个对象或区域,并动态注入行为。相关的数据和配置(如动画)会被存储在对象中,而不是代理中,这实现了大量代理之间的共享,促成了更高效的内存利用和更出色的性能,无需编辑核心行为即可更灵活地扩展默认行为。 + +状态树是一种可扩展的通用状态机,它在灵活的决策树结构(以及直观而紧凑的用户界面)中结合了经典的状态机机制,同时保留了高性能。 + +这两项技术在UE 5.0版本中是作为实验功能发布的,但经过《堡垒之夜:大逃杀》第四章中的成功部署后,它们在5.1版本中已进入生产就绪状态。在第四章之前,智能对象只被用于让AI播放简单的动画或表情。通过在智能对象流程中整合状态树,我们成功地实现了更复杂、更丰富的机器人行为,例如机器人与《堡垒之夜》篝火互动的方式。 + + + + +## 更高的开发者效率 +我们一直在寻找提高开发者效率的方法,让他们可以专注于创作过程。《堡垒之夜》采用了新的图形技术,如磁盘空间占用量更大的Nanite,这为我们带来了一项挑战:寻找方法减少团队加载游戏或从Perforce获取内容的时间。 + +庞大且分布于多个地点的《堡垒之夜》团队从新的虚幻云DDC中获益匪浅,这是一个为派生数据缓存建立的全球高效模型,允许团队成员快速访问纹理或网格体等内容的优化版本,消除了在本地进行处理的需要。因此,《堡垒之夜》中的编辑器加载时间至少快了2倍。 + +虚拟资产减少了内容的磁盘占用量,从而将《堡垒之夜》单个工作空间的同步时间缩短了四倍以上;通过删除多个工作空间共用的重复数据,我们甚至还可以节省更多磁盘空间和同步时间。我们从虚幻资产较小的类属性(如纹理分辨率和格式等)中剥离出了原始纹理像素等大体积数据,并将它们分开存储。从表面看,虚拟资产与普通虚幻资产并没有区别,但是它们要小很多倍。开发者的工作流程几乎无需做出改变,而客户端只在需要时才会下载要在编辑器中使用的数据,显著减少了等待Perforce进行同步的时间。 + +## 机器学习 +虚幻引擎的机器学习(ML)变形器允许你使用自定义的Maya插件训练将在虚幻引擎中实时运行的机器学习模型,为复杂的专有绑定(或任意变形)创建高保真的近似模拟。 + +在第四章中,《堡垒之夜》团队使用ML变形器实现了更高质量的角色肌肉和布料变形,Hulk和Sunlit是第一批从中受益的角色。团队能够通过外部DCC工具捕获复杂的变形和模拟,并将几何结果注入它们的游戏绑定。这次实战测试的结果是,ML变形器在UE 5.1中从实验版升级到了测试版,同时,团队与ML变形器的工程师展开了密切合作,使该技术有机会得到进一步完善,他们计划在UE 5.2中增加新功能和稳定性修复。 + +## MetaHuman框架 +在第四章中,《堡垒之夜》团队与3Lateral及MetaHuman团队的开发者密切合作,升级了《堡垒之夜》角色的面部动画功能。其中包括一些对角色质量的更新,例如增加了新角色的表情和关节数量,创建了新的绑定和动画工具,将面部动画推向了新的高度。 + +因此,虚幻引擎5.1改进了绑定逻辑的运行时功能,将性能开销控制在了约束范围内,还专门创建了重映射节点,为《堡垒之夜》中MetaHuman技术的向前和向后兼容性提供了支持。 + +我们希望你喜欢我们在《堡垒之夜:大逃杀》第四章的开发过程中对虚幻引擎5.1做出的所有改进,并发现它们有助于你将游戏的视觉保真度提升到新水平。我们期待看到结果!
\ No newline at end of file diff --git a/themes/itheme/exampleSite/content/posts/captured-on-iphone-14-photographers-inspire-iphone-users-to-capture-portraits-landscapes-city-scenes-and-stunning-videos.md b/themes/itheme/exampleSite/content/posts/captured-on-iphone-14-photographers-inspire-iphone-users-to-capture-portraits-landscapes-city-scenes-and-stunning-videos.md new file mode 100644 index 0000000..dd14084 --- /dev/null +++ b/themes/itheme/exampleSite/content/posts/captured-on-iphone-14-photographers-inspire-iphone-users-to-capture-portraits-landscapes-city-scenes-and-stunning-videos.md @@ -0,0 +1,65 @@ +--- +title: '用 iPhone 14 拍摄:摄影佳作激发创作灵感,定格精彩人像、自然与城市风光' +date: '2022-11-27T13:06:38+08:00' +description: '' +draft: true +author: 'Apple Newsroom' +cover: 'https://www.apple.com.cn/newsroom/cn/images/product/iphone/lifestyle/Apple_Shot-on-iPhone-14-models_iPhone-14-Pro-Max-with-the-Main-Camera-by-Xiaobei-Fuzhou_12192022_Full-Bleed-Image.jpg.xlarge_2x.jpg' +tags: ["新闻稿", "Apple", "iPhone 14", "摄影"] +theme: 'dark' +--- + + + + + +通过 iPhone 14 Pro Max,iPhone 14 Pro,iPhone 14 以及 iPhone 14 Plus 上突破性创新的摄像头系统,中国的摄影师们拍摄并分享令人惊艳的照片和视频,以此激励更多 iPhone 用户在即将到来的节日假期中捕捉亮丽的城市景观、迷人的自然风光,并记录下与亲人相聚的难忘时刻。 + + + + + +iPhone 14 和 iPhone 14 Plus 为摄影和摄像设立了新标准,搭载具备更大感光元件和像素尺寸的 1200 万像素主摄、首次配备自动对焦功能并采用 ƒ/1.9 光圈的全新前置原深感摄像头,以及超广角摄像头用于拍摄更宽广的场景。除此之外,光像引擎也带来低光表现的巨大跃升。 + +通过软硬件深度集成,光像引擎能够提升所有摄像头在中低光环境下的照片表现:超广角摄像头表现提升可达 2 倍,原深感摄像头表现提升可达 2 倍,全新主摄表现提升可达 2.5 倍。iPhone 14 系列还推出全新的运动模式——即使在大幅的抖动和运动中,也能轻松拍摄无比丝滑的视频。 + + + + + + + +iPhone 14 Pro 和 iPhone 14 Pro Max 上搭载的 Pro 级摄像头系统挑战 iPhone 影像的能力极限。iPhone 14 Pro 首次采用搭载四合一像素传感器的全新 4800 万像素主摄,同时配备光像引擎使细节的丰富程度达到前所未有的高度。 + + + + + +从日常到专业使用,iPhone 14 Pro 上推出的摄像头系统将为每一位用户赋能,令他们的照片和视频更出彩。全新 4800 万像素主摄采用四合一像素传感器,可根据拍摄照片进行调整,还具备第二代传感器位移式光学图像防抖功能,全面提升图像质量。这有利于复杂光线环境下的拍摄,尤其在低光条件下也能拍摄到优质的影像。此外,用户现可以用 4800 万像素拍摄 ProRAW 影像,利用每一个像素,为专业用户实现全新的创意工作流。 + + + + + + +加上超广角和长焦摄像头一起,iPhone 14 Pro 现在支持 0.5 倍、1 倍、2 倍和 3 倍共计四个变焦选项 ,使用户无需牺牲画面质量,即可在拍摄照片和视频时拥有更多取景选项。丰富的焦距范围可以轻松应对多种场景,足之所至,即成佳作。四合一像素传感器还支持 2 倍长焦选项,利用该传感器正中的 1200 万像素拍摄全分辨率照片和 4K 视频,无需数码变焦。该选项能够以常用焦距带来光学品质成像,对于人像模式等功能来说非常实用。 + + + + +强大的 A16 仿生芯片和配备 5 核图形处理器的 A15 仿生芯片,是驱动强大功能的幕后功臣,如运动模式让摄像师轻松实现更加稳定、丝滑的视频画面,电影效果模式带来沉浸式叙事风格。 + +全新的运动模式可拍摄出无比丝滑的视频,应对大幅的抖动、位移和震动,甚至在运动中拍摄时也不例外,让用户在手持拍摄时无需携带云台等外设。该模式支持高达 2.8K 60 fps 视频,而增强的电影效果模式现已支持 4K 分辨率和 24 fps 的电影帧率录制,让用户能够通过生动的叙事释放无穷的创造力,并与全世界分享他们通过 iPhone 所看到的内容。 + +自适应原彩闪光灯经过全面重新设计,采用九粒 LED 灯珠阵列,会根据用户选择的照片焦距更改闪光模式,使拍摄对象始终处于最佳光线中。与上一代相比,全新闪光灯亮度提升可达 2 倍,光线均匀度提升可达 3 倍。 +此外,全新原深感摄像头配备更快的光圈,让低光条件下照片视频更美丽细致,并支持自动对焦功能。 + + + + + + + +iPhone 14 系列的所有摄像头均支持夜间模式,这意味着当用户在深夜拍摄风景或在低光条件下自拍时,照片会被神奇地点亮。同时,夜间模式现将广角摄像头的想象力提升到全新水平,得益于更大的感光元件和更快的光圈,使 iPhone 14 和 iPhone 14 Plus 上的曝光时间最快提升可达 2 倍。 + + diff --git a/themes/itheme/exampleSite/content/posts/mark-down-syntax.md b/themes/itheme/exampleSite/content/posts/mark-down-syntax.md new file mode 100644 index 0000000..00f8cf8 --- /dev/null +++ b/themes/itheme/exampleSite/content/posts/mark-down-syntax.md @@ -0,0 +1,135 @@ +--- +title: "Markdown Syntax Example" +date: 2023-03-20T13:06:38+08:00 +description: "display the markdown syntax in iTheme" +author: "Floyd Li" +tags: ["markdown"] +theme: "dark" +featured: true +cover: "https://www.apple.com.cn/newsroom/images/apple-logo_black.jpg.landing-regular_2x.jpg" +--- + +# Headings + +```markdown +# H1 +## H2 +### H3 +#### H4 +##### H5 +###### H6 +``` + +# H1 + +## H2 + +### H3 + +#### H4 + +##### H5 + +###### H6 + + +# Image + +```markdown +Image - Wide + + + +Image - Big + + + +Image - Inline + + +``` + + + + + + + +# Block Quotes + +```markdown +> You are young and life is long - Pink Floyd + +``` + +> You are young and life is long - Pink Floyd + +# Code Blocks + +``````markdown +```javascript +function say() { + const greeting = "I'll see you on the dark side of the moon"; + console.log(greeting); +} +``` +`````` + +```javascript +function say() { + const greeting = "I'll see you on the dark side of the moon"; + console.log(greeting); +} +``` + +# Table + +```markdown +| Band | Country | Song | +| ------------------ | :-----------: | --------------: | +| Pink Floyd | *UK* | Time | +| Led Zeppelin | **UK** | Immigrant Song | +| The Rolling Stones | ~~UK~~ | Don't Stop | +| Nirvana | ~~***USA***~~ | Come as You Are | +``` + +| Band | Country | Song | +| ------------------ | :-----------: | --------------: | +| Pink Floyd | *UK* | Time | +| Led Zeppelin | **UK** | Immigrant Song | +| The Rolling Stones | ~~UK~~ | Don't Stop | +| Nirvana | ~~***USA***~~ | Come as You Are | + +# List Types + +## Ordered List + +```markdown +1. Queen +2. The Velvet Underground +3. Dire Straits +``` + +1. Queen +2. The Velvet Underground +3. Dire Straits + +## Unordered List + +```markdown +- David Bowie +- Iggy Pop +- Bob Dylan +``` + +- David Bowie +- Iggy Pop +- Bob Dylan + +# Emoji + +This is a test for emoji. +:smile: +:see_no_evil: +:smile_cat: +:watermelon: diff --git a/themes/itheme/exampleSite/content/posts/the-first-year-out-moving-from-student-to-3d-artist.md b/themes/itheme/exampleSite/content/posts/the-first-year-out-moving-from-student-to-3d-artist.md new file mode 100644 index 0000000..6ca446a --- /dev/null +++ b/themes/itheme/exampleSite/content/posts/the-first-year-out-moving-from-student-to-3d-artist.md @@ -0,0 +1,111 @@ +--- +title: '毕业第一年:从学生向3D美术师的转变' +date: '2022-12-07T13:06:38+08:00' +description: '如何从学校踏入暴雪娱乐、DNEG等游戏和视觉特效巨擘,经历鼓舞人心的三位3D美术师给出了他们的专业建议。' +author: '虚幻引擎官网' +cover: 'https://cdn2.unrealengine.com/student-to-3d-artist-header-1920x1080-73d477520f8e.jpg?resize=1&w=1920' +tags: ["特写", "影视", "教育", "游戏", "3d", "新闻稿"] +theme: 'dark' +--- + + + +我们都知道,无论哪个领域,离开学校进入职场的感觉有多么令人生畏。你具备合适的技能吗?你学到的技术能在你获得的工作中发挥作用吗?这足以让你夜不能寐。 + +最近,我们采访了一些3D美术师,他们谈到了离开学校,在游戏开发、视觉特效和沉浸式媒体等行业中找到新工作后,自己是如何度过这一转型时期的。如果你有兴趣了解可转移技能、你可能存在的缺漏以及不同3D岗位的日常工作,这篇文章正好适合你。 + +## Kris Yu:暴雪娱乐副环境美术师 + +在《暗黑破坏神4》团队中,团队中的新人环境美术师的日常工作是怎样的?按照Kris Yu的说法,通常,她首先要登录系统,完成游戏开发引擎的同步,然后开始处理分配给她的环境任务。对于该团队的美术师来说,时间管理至关重要,按时完成任务是成功的基础。Kris说:“重点不在于‘尽最大努力’或‘创造最好的美术作品’,而是必须遵守时间安排,确保一切顺利。” + +她学到了一个有用的技巧,那就是将与任务相关的所有说明和图片全部列出来。一旦完成,她就会在上面打勾。由于每处环境所需的细节程度各不相同,她或她的团队很容易遗漏一些需要解决的问题,而这种方法能够帮助Kris避免出差错。 + +很快,她又了解到,电子游戏行业的工作需要大量沟通和团队协作,在家办公时尤其如此。“在这个行业中,能够大胆直言,表达自我,并倾听他人的意见是至关重要的。”Kris说,“人们已经预料到我会提出问题,犯下错误。我不会因为自己的错误而感到懊悔和不安,我会吸取教训并改正,这将使我成长得更快。” + +为了更清楚地了解每天的任务,Kris会定期通过语音与同事及团队领导交流。她的团队还会上传视频,在每周的回顾会议中互相提供反馈,她说这是一种很好的学习方式,也体现出了同事对游戏开发的热情。 + +Kris认为,如果自己在进入新工作之前更深入地学习了设计方面的知识就好了。当她还是一名学生时,她倾向于将其他美术师的概念设计当作起点,在这个基础上创建3D环境。有了那种坚实的基础,Kris只需要做出一些小改动,就能完善整体环境。 + +当Kris开始与《暗黑破坏神4》的团队协作处理场景构建任务后,她需要进一步顾及3D空间中的玩法设计,但她认为自己缺乏基础设计方面的经验。“我的个人项目不像可玩的游戏那样错综复杂,在游戏中,可移动摄像机所展示的各个角度都应该完美。”Kris说,“所以我还要继续学习空间设计,我已经在阅读建筑类的书籍了,希望学到更多关于建筑结构的知识。” + +那么,Kris如何一毕业就能在暴雪找到工作?她在2022年的Rookie Awards中获得了游戏开发年度新秀奖,其作品还在2022年虚幻引擎学生作品展中展出过。如果你经常访问虚幻引擎网站,甚至可能已经看过她的作品,只是没有注意到而已! + + + +在诺蒙学院时,她创作的废弃工厂环境还被评为“学期最佳”,这帮助她在成为美术师的道路上迈向了一个新台阶。“这件作品的灵感源自我最喜欢的电子游戏《最后生还者》。”Kris说,“顽皮狗的游戏是我来美国学习游戏美术的动因,我想重现他们的风格,通过环境本身讲述故事。”这是她使用虚幻引擎5创作的第一个项目,用到了许多新技术和技能,还做了一些实验。Kris的所有资产都是在Maya中建模的,随后,她使用ZBrush进行雕刻,并通过Substance Painter和Designer应用经过平铺和烘焙的纹理。 + + + +然而,失败是成功之母。Kris承认,在创作获奖项目之前,她在另一个项目中犯了一些错误。“我的研究工作做得不好,在早期阶段缺乏耐心。”Kris说,“我太急于进入项目,后来才发现我收集的参考资料不足以让我根据概念图完成作品。所以我选择启动新项目,而不是继续完成一个有太多问题需要解决的旧项目。” + +犯了这个错误后,Kris会花费更多时间为她的场景寻找大量参考图片。她甚至还亲自前往了其中一个地点。“我花了大约两个月的时间,专门收集参考资料和设计草图。说实话,时间有点长,但这是我所有四件作品中最精致的项目。”Kris说。 + + + + +最后,如果你正在研究实时技术,请竭尽全力将自己和作品展现在公众眼前,这么做是值得的。这意味着你将开启新的大门,获得新的机遇。问问Kris就知道了。 + +“在2022年的Rookie Awards中获奖后,我得到了很多出现在公众视野中的机会,这在一定程度上帮助我成为了暴雪娱乐《暗黑破坏神4》团队中的全职副环境美术师。”Kris说,“当我在今年的The Game Awards中看到这款游戏后,我终于感觉自己是一名专业的美术师了。” +Kris给出了以下专业提示: +在深入细节之前,先关注全局 + +“我强烈建议你更加注重对整体环境建立起清晰的认识。我见过很多学生直接就钻入微小的细节,比如在一个道具上花太多时间,但如果整体结构存在问题,那就等于是在浪费时间。” +记录项目的过程 + +“你未来的雇主很在意这个过程,即使你制作的是一个简单的灰盒模型,或是犯了一个严重的错误导致项目失败,都应该将过程记录下来。它将展现你的思路和发挥创意解决问题的能力。这也是我能够获得面试机会,随后进入暴雪工作的部分原因。” +展示你的作品 + +“大多数3D美术师都会在ArtStation上发布作品,我强烈建议你订阅专业版账户,这样可以在公众面前增加知名度。ArtStation甚至还为学生提供了订阅折扣。比如说,《暗黑破坏神4》的美术总监在那里看了我的作品集后,就在LinkedIn上联系了我。我也会在LinkedIn上发布作品,因为很多专业美术师和招聘人员都在那里寻找候选人。” + + + +## Josh Carstens:DNEG管线技术总监助理 + +Josh最初进入DNEG工作时,是在长片动画部门担任管线技术总监助理,为《加菲猫》和Netflix的原创圣诞电影《那年圣诞》等正在制作的节目提供支持。尽管他在学校积累了不少虚拟制片经验,并因此吸引了DNEG的注意,但他还没有机会运用它们。然而他相信,机会迟早会到来。 + +他的团队为美术师、制片协调员、节目主管提供3D管线方面的支持,有时也会相互提供支持。支持任务包括帮助美术师解决与渲染、绑定和模型相关的问题,让他们能够通过DNEG多年积累的内部工具套件完成开发任务。这一切都是为了确保长篇动画电影的制作过程尽可能顺利。 + +当Josh开始在DNEG工作时,他颇有感触——对许多学生来说,当他们结束学业和实习,找到毕业后的第一份工作时,或许会体会到相似的感受。“我在DNEG的职责与实习期间的工作相反,都是软件和编程方面的,属于传统的3D动画制作,严格说来,这些都不是我在学校时的学习重点。”Josh说,“但既然我已经熟悉了所有基础知识,我可以在此基础上更进一步,熟悉Python和影片制作过程。” + +在入职DNEG之前,Josh在Production Resource Group(PRG)有过一段短暂但富有成效的实习经历,这帮助他熟练地掌握了虚拟制片技术。“在实习中,硬件是我们的主要关注点,而且创作形式自由,现在想来,我仍感觉十分新奇。我从中深入地了解了LED技术,对我接下来的学期大有帮助。”Josh说。 +图片由Josh Carstens提供 +对于年轻的3D美术师来说,当进入一个岗位时,他们会希望自己已经掌握了某些特定的知识,这是合情合理的。Josh指出,总体而言,他认为自己如果具备更多关于Git和版本控制系统的知识就好了。“我有过这样的经历,我曾花大量时间为我的工作仓库变更基底,然后它闲置了一个月,这时有更新进来了,于是我必须弄清楚如何将我的代码与更新合并。”Josh说,“如果很多内部仓库都有自己的系统,需要据此决定如何建立分支和贡献代码,你可能会感觉很头疼。”然而,Josh在学习过程中的大部分任务都是使用C++或MATLAB完成的,所以他对编程的熟悉程度有助于他应对目前的工作。 + +在罗彻斯特理工学院时,Josh曾导演过影片《Reverie》,他日益丰富的虚拟制片技能再次得到了运用。项目由他主导,因此他能够做出富有创意的决定,然后在虚幻引擎中工作,完成后期制作。“我处理了一些紧急状况,例如,我们的Axis Studio授权加密狗在拍摄前故障了,我需要让支持人员连夜给我们邮寄一个新的,否则我们就完全不能使用动作捕捉了。”Josh说,“能够领导这样一个项目,我感觉很满足。” + + + +他还认为,虚拟制片和虚幻引擎是一对最佳搭档。“在Epic Games的推动下,虚幻引擎成了虚拟制片的代名词,而且它的授权条款对于新手也非常友好,如果你的计算机显卡和CPU符合要求,那么它就是你的理想之选。”Josh说。 + +虚拟制片新手可以看看虚幻引擎网站上的众多学习资源,它们可以补充你所使用的其他教育资源的缺漏之处。 +Josh给出了一条建议: +“为了在DNEG工作,我从纽约州北部搬到了加拿大的蒙特利尔。在这个过程中,搬到新城市时的社交孤立感是我必须面对的问题,尤其是,我在这里无法说母语。在我以前的生活中,我从来没有离开过家人和朋友,我的生活方式发生了很大的改变,我觉得我没有做好充足的准备。然而,我已经认识到,这种感觉非常正常,我想对其他具有相同处境的年轻专业人士说,你并不孤单。花点时间适应,不要害怕与其他人交往。”DNEG最近开始为员工提供免费的法语课程,Josh希望能够借此机会认识其他部门的新朋友。寻找处境类似的其他人(如别的新员工)是减少孤立感的好方法。 + +Lara Rende:德雷塞尔大学学生 +Lara尚未毕业,但她对资深专家所使用的工具并不感到陌生。事实上,我们对她的故事了解得越多,就越觉得即将毕业的学生能够从中受到鼓舞。 + +“不要害怕。”Lara说,“我还记得,我的教授在大一的第一堂课上就打开了Maya,在第二堂课上打开了虚幻引擎4。最初,这会让人感到不知所措,但那时我绝不会想到,到了大四,我会参与这么多项目。” + +她之所以能够积累如此丰富的经验,部分原因是她的教授们都知道,她渴望尝试新出现的沉浸式技术。他们曾指导Lara参与宾夕法尼亚州当地植物园的联合研究项目。Lara不仅能够帮忙重现一座历史悠久的建筑(杜邦故居),还可以在这个过程中同时运用多种技术,包括iOS激光雷达、摄影测量和虚幻引擎5。 + + + +虽然摄影参考资料是3D建模的重要资源,但对Lara来说,最好的方法还是亲自参观一个地方。她花了一天时间游览长木花园,这不仅有助于她感受这个地方的整体状况,还能直接观察到她的团队要重现的房屋,这份经历最终成了Lara在这个项目中最珍爱的时刻。“那一天,我收获了许多参考照片、视频和个人笔记。”Lara说,“在这座历史悠久的建筑里,我知道我正在做的项目将帮助人们看到这个地方300年前的样子,这让我感觉心潮澎湃。” + +然而,尽管Lara的团队使用激光雷达和摄影测量技术扫描了杜邦故居,但他们选择将它们留作参考,在Maya中为房屋建模,这样可以在虚幻引擎中自由地为它添加纹理并制作动画。 + +除了3D建模外,Lara还热衷于学习动作捕捉技术。作为德雷塞尔动作捕捉社团的现任社长,她不仅帮助教导社团成员了解动作捕捉的完整过程,还与朋友们一起完成了独立的动作捕捉实践。有时候,她也会单纯享受捕捉韩流舞蹈动作的乐趣。 + +Lara最近参加了导演Ian Fursa独立虚拟制片的拍摄,并测试了这些动作捕捉技能。借此机会,她能够通过绝佳视角了解到摄影棚的拍摄过程。拍摄期间,Lara帮助搭建了摄影棚环境,并根据需要配置了动作捕捉摄像机,以便将Vicon追踪到的数据传入虚幻引擎。她还负责建立和拆解布景,操作动作捕捉系统,设置虚拟制片屏幕,以及标记捕捉对象。当她与Remington Scott合作,为Meta制作Notorious B.I.G.的Sky’s The Limit VR演唱会时,她再次采用了这一流程,并取得了巨大的成功。 + + + +那么,这名最忙碌的学生现在在做什么呢?她很快就要毕业了。不忙于学习的时候,Lara会腾出时间寻找工作,她也在考虑攻读研究生课程是否是最好的选择。且不管她如何选择,她说:“我知道,无论我毕业后做什么工作,我都会继续学习和探索。” + +显然,当Lara进入职场时,3D建模、摄影测量和动作捕捉等方面的实践经验将对她大有帮助。但她的好奇心和不断学习的动力才是真正值得我们学习的。 + + + +## Lara给出了以下专业提示: + +“在提供给我的所有项目中,我都会全身心投入。当教授需要我在虚幻引擎中创建一个可玩的VR关卡时,即使我没有任何经验,我还是硬拼着完成了。我参与的所有项目都将为我提供非常宝贵的学习经验。如果你真的想在3D领域做出一些成就,就全身心地投入进来吧。人们可以方便地获取到许多工具和教程。虚幻引擎5是免费的!慢慢来,相信自己。” diff --git a/themes/itheme/exampleSite/content/posts/unreal-engine-5-1-delivers-new-features-for-filmmaking-broadcast-animation-and-live-events.md b/themes/itheme/exampleSite/content/posts/unreal-engine-5-1-delivers-new-features-for-filmmaking-broadcast-animation-and-live-events.md new file mode 100644 index 0000000..3633b94 --- /dev/null +++ b/themes/itheme/exampleSite/content/posts/unreal-engine-5-1-delivers-new-features-for-filmmaking-broadcast-animation-and-live-events.md @@ -0,0 +1,75 @@ +--- +title: '虚幻引擎5.1带来电影、广播、动画和实况活动新功能' +date: '2022-11-12T13:06:38+08:00' +description: '从通过摄像机内视效实现的虚拟制片,到动画项目以及激情四射的实况广播和活动,虚幻引擎为媒体和娱乐管线提供了更庞大、更健壮、更易用的工具集。来看看有哪些新功能吧。' +author: '虚幻引擎官网' +cover: 'https://cdn2.unrealengine.com/unreal-engine-5-1-media-and-entertainment-header-1920x1080-d314b1b23459.jpg?resize=1&w=1920' +tags: ["功能", "动画", "广播与实况", "虚幻引擎"] +theme: 'light' +--- + + +随着虚幻引擎5.1的发布,它所带来的改进将使所有行业的创作者受益。在这篇博文中,我们将特别关注真人与动画影视内容(包括虚拟制片和LED舞台项目)的创作者、广播行业从业者,以及实况活动制作团队,看看他们将享受到哪些新功能。 + +过去两年,媒体和娱乐行业的专业人士以及各种规模的公司对虚幻引擎的采用率呈指数级增长,由此诞生了一些成功的项目,如YouTube上由表演驱动的角色动画节目《Xanadu》、Pixomondo的Caledon足球广告以及Fox Sports的新虚拟演播室。在虚幻引擎5.1中,我们的目标是为行业提供比以往更加庞大、健壮和易用的工具集,使他们能够在过去的成功基础上取得更长远的进步。 +虚幻引擎5.1为媒体和娱乐行业提供的新功能 +增强对舞台操作的支持 +在LED舞台快节奏、高压力环境中工作的舞台操作员将新迎来专门的摄像机内视效编辑器,它支持一系列为操作员需要执行的任务而专门定制的工作流程。这在很大程度上消除了舞台操作员在大纲视图中搜寻特定对象和控件的需要。 + +我们计划在未来几周发布与该编辑器功能相对应的iOS应用程序,其用户界面经过调整,专为触摸屏交互而设计。相关新闻已报道,我们改进了远程控制API的用户界面、用户体验和性能,使你能够更加迅速、便捷地构建基于浏览器的强大自定义远程控件。 + +新编辑器搭载了一个经过改进的发光板系统界面,可显示nDisplay墙的预览。除了使创建、移动和编辑发光板以及保存预设变得直观和高效外,新的发光板系统还可以在墙上维持发光板的形状,消除失真。 + + + +## 在虚幻引擎5.1中编辑发光板 + +颜色校正对于LED舞台工作流程而言至关重要,它是弥合LED墙与实体布景,并对LED墙内容进行微调的关键手段。在摄像机内视效编辑器中,你还可以访问全新的颜色校正窗口(CCWs),它能够单独地将调整应用至其背后的任何东西(类似于颜色分级应用程序中的Power Window),同时还能够逐个对Actor应用颜色校正,减少了对复杂的遮罩的需求。 + +## 改进的媒体板工作流程和EXR回放 + +还记得要点击几十次才能将EXR或影片文件添加到关卡或Sequencer轨道中吗?在虚幻引擎5.1中,新的媒体板Actor允许你从内容浏览器中轻松拖放镜头。此外,使用适当的SSD RAID,你现在还可以在引擎中或通过nDisplay回放拥有Mipmap贴图、未经压缩的平铺EXR。为了实现最佳回放效果,我们还添加了将EXR转换为恰当格式的功能。 + +## 经过全面改造的虚拟摄像机 + +与此同时,虚幻引擎中的虚拟摄像机得到了全面改造,它具备了全新的底层框架,能够利用Epic的像素流送技术提高响应速度和可靠性;用户界面也得到了更新,它拥有以摄像机为中心的现代化设计,摄像机操作员将感到更加熟悉。我们还增加了连接硬件设备的功能,为将来的用户界面定制奠定基础。 +虚幻引擎5.1中改进的虚拟摄像机 + + + +## 改进的DMX工作流程 + +为了将虚幻引擎更加无缝地集成到庞大的DMX生态系统中,我们增强了对MVR格式的支持,以囊括与灯具、制图和配接相关的功能;当虚幻引擎和光照控制台需要共享DMX数据时,这些数据可以在两个系统之间进行同步。我们还改进了像素映射系统的用户体验,以支持通过虚幻引擎内容数据驱动日益复杂的DMX光照灯具。 + +## 光照的增强 + +虚幻引擎的全动态全局光照和反射系统Lumen现在提供了对nDisplay的初步支持。有了Lumen,当执行改变太阳角度、调整光源或定位反光板等操作时,间接光照会动态做出适应性调整。之前,这些变更还需要一个烘焙步骤,导致创作流程被打断。 + + + +## 虚幻引擎5.1中Lumen对nDisplay的支持 + +目前,可支持的光源数量并不多(总计大约五到七个光源,取决于显卡)。为了应对需要更多光源的复杂场景,我们还改进了GPU Lightmass,添加了对天空大气、固定天空光照以及光源功能(如IES配置文件和矩形光源纹理)的支持,并全面提升了质量和性能。 +动画和绑定的改进 +值得一提的是,虚幻引擎5.1为动画内容(尤其是角色)的制作者改进了内置的动画制作工具集。 + +现在处于测试阶段的机器学习(ML)变形器能够使用自定义的Maya插件训练将在虚幻引擎中实时运行的机器学习模型,从而为非线性变形器、复杂的专有绑定或任意变形生成近似的高保真模型。这允许你模拟电影质量级的变形,如弯曲的肌肉、隆起的静脉和拉扯的皮肤。 + + + +角色变形方面的其他改进包括完善了变形器图形编辑器,从而简化了图形的创建和编辑。 + +另一方面,控制绑定朝着完全程序化绑定的方向得到了进一步完善,提高了绑定团队的影响力和扩展能力。其核心框架的更新包括一个新的构造事件,允许你通过图表生成绑定层级,还有一个自定义用户事件,用于创建和触发“将FK对齐至IK”之类的绑定事件。 + +通过这些更新,你可以创建一个单独的控制绑定资产,它能够自行构建,适应骨骼比例和属性各不相同的角色。例如,同一个控制绑定经过自行调整,可以适应三根手指的怪物或五根手指的人类,你无需对绑定资产做出任何更改。 + +我们还扩展了虚幻引擎的多轨非线性动画编辑器Sequencer,为其增加了对约束的支持,包括位置、旋转和查看点。通过这些,你可以快速、轻松地在任何控制绑定或Actor之间创建关系并制作动画,例如,使摄像机始终跟随一名角色;让一名角色始终手握方向盘;制作小丑玩抛接球的杂耍动画;或约束一名牛仔的臀部,使他在马移动时自然地坐在马鞍上,并且手握缰绳。 + +## 虚幻引擎5.1中Sequencer对约束的支持 + + + +Sequencer还通过蓝图和Python脚本公开了更多功能;我们还为其重构了用户界面和用户体验,这不仅提高了稳定性和可扩展性,也完善了动画创作和编辑的工作流程。 +除此之外,还有很多…… + +这些只是虚幻引擎5.1中面向媒体和娱乐工作流程的部分新功能和改进。请访问版本说明,查看完整的功能列表。 diff --git a/themes/itheme/exampleSite/content/posts/vr-games-week-2023-starts-next-week.md b/themes/itheme/exampleSite/content/posts/vr-games-week-2023-starts-next-week.md new file mode 100644 index 0000000..993d4ec --- /dev/null +++ b/themes/itheme/exampleSite/content/posts/vr-games-week-2023-starts-next-week.md @@ -0,0 +1,24 @@ +--- +title: '2023年VR游戏周即将到来!' +date: '2022-12-27T13:06:38+08:00' +description: 'Vr Games Week 2023 Starts Next Week' +author: '虚幻引擎官网' +cover: 'https://cdn2.unrealengine.com/vr-week-2023-header-4-1920x1080-376e6c48383f.jpg?resize=1&w=1920' +tags: ["功能", "动画", "广播与实况", "虚幻引擎"] +theme: 'light' +--- + +PlayStation VR2即将于下周发布。为表庆祝,我们准备介绍数部即将登陆此平台的虚幻引擎VR游戏,以及一些准备登陆Meta Quest、PCVR等平台的虚幻VR作品。 + + + +2023年VR游戏周将从2月21日(周二)一直持续到2月25日(周六)。届时,我们将向大家介绍一系列优秀的VR游戏案例,并推介以下项目: +《Hubris》 +《黑相集:之字路VR》 +《行尸走肉:圣徒与罪人第二章》 +《穿越火线:塞拉小队》 +一期以VR为主题的Inside Unreal直播 +一款尚未公布的VR游戏 +还有更多精彩内容等你来发现! + +欲了解最新消息,请收藏我们的VR游戏周活动页面.
\ No newline at end of file diff --git a/themes/itheme/i18n/de.toml b/themes/itheme/i18n/de.toml new file mode 100644 index 0000000..23cfa99 --- /dev/null +++ b/themes/itheme/i18n/de.toml @@ -0,0 +1,34 @@ +[home] +other = "Startseite" +[posts] +other = "Artikel" +[about] +other = "Über uns" +[latestArticles] +other = "Artikel" +[moreArticles] +other = "Weitere Artikel" +[viewArchive] +other ="Archiv anzeigen" +[socialMedia] +other = "Social Media" +[related] +other = "Verwandte Seiten" +[pagination] +other = "Seitenzahl" +[of] +other = "von" +[allTags] +other = "Alle Tags" +[author] +other = "Autor" +[postDate] +other = "Veröffentlicht am" +[copyright] +other = "Copyright" +[licenses] +other = "Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)" +[search] +other = "Suche" +[searchPlaceholder] +other = "Titel oder Beschreibung suchen..."
\ No newline at end of file diff --git a/themes/itheme/i18n/en.toml b/themes/itheme/i18n/en.toml new file mode 100644 index 0000000..02933c5 --- /dev/null +++ b/themes/itheme/i18n/en.toml @@ -0,0 +1,34 @@ +[home] + other = "Home" +[posts] + other = "Articles" +[about] + other = "About" +[latestArticles] + other = "Articles" +[moreArticles] + other = "More Articles" +[viewArchive] + other ="View Archive" +[socialMedia] + other = "Social Media" +[related] + other = "Related" +[pagination] + other = "Pagination" +[of] + other = "of" +[allTags] + other = "All Tags" +[author] + other = "Author" +[postDate] + other = "Posted on" +[copyright] + other = "Copyright" +[licenses] + other = "Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)" +[search] + other = "Search" +[searchPlaceholder] + other = "Search title or description..."
\ No newline at end of file diff --git a/themes/itheme/i18n/es.toml b/themes/itheme/i18n/es.toml new file mode 100644 index 0000000..683985e --- /dev/null +++ b/themes/itheme/i18n/es.toml @@ -0,0 +1,34 @@ +[home] + other = "Inicio" +[posts] + other = "Artículos" +[about] + other = "Acerca de" +[latestArticles] + other = "Artículos Recientes" +[moreArticles] + other = "Más Artículos" +[viewArchive] + other = "Ver Archivo" +[socialMedia] + other = "Redes Sociales" +[related] + other = "Relacionados" +[pagination] + other = "Paginación" +[of] + other = "de" +[allTags] + other = "Todas las Etiquetas" +[author] + other = "Autor" +[postDate] + other = "Publicado el" +[copyright] + other = "Derechos de Autor" +[licenses] + other = "Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0)" +[search] + other = "Buscar" +[searchPlaceholder] + other = "Buscar título o descripción..." diff --git a/themes/itheme/i18n/zh-hans.toml b/themes/itheme/i18n/zh-hans.toml new file mode 100644 index 0000000..b941758 --- /dev/null +++ b/themes/itheme/i18n/zh-hans.toml @@ -0,0 +1,34 @@ +[home] + other = "首页" +[posts] + other = "目录" +[about] + other = "关于" +[latestArticles] + other = "最新文章" +[moreArticles] + other = "更多文章" +[viewArchive] + other ="阅读历史文章" +[socialMedia] + other = "社交媒体" +[related] + other = "友链" +[pagination] + other = "分页" +[of] + other = "页" +[allTags] + other = "所有标签" +[author] + other = "作者" +[postDate] + other = "发表日期" +[copyright] + other = "版权声明" +[licenses] + other = "版权声明:署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)" +[search] + other = "搜索" +[searchPlaceholder] + other = "搜索文章标题或简介..."
\ No newline at end of file diff --git a/themes/itheme/images/screenshot.png b/themes/itheme/images/screenshot.png Binary files differnew file mode 100644 index 0000000..f115f55 --- /dev/null +++ b/themes/itheme/images/screenshot.png diff --git a/themes/itheme/images/tn.png b/themes/itheme/images/tn.png Binary files differnew file mode 100644 index 0000000..b37c6dc --- /dev/null +++ b/themes/itheme/images/tn.png diff --git a/themes/itheme/layouts/404.html b/themes/itheme/layouts/404.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/themes/itheme/layouts/404.html diff --git a/themes/itheme/layouts/_default/_markup/render-codeblock.html b/themes/itheme/layouts/_default/_markup/render-codeblock.html new file mode 100644 index 0000000..a39190c --- /dev/null +++ b/themes/itheme/layouts/_default/_markup/render-codeblock.html @@ -0,0 +1,9 @@ +<div class="component-content pagebody component code"> + {{ $class := .Attributes.class | default "" }} + {{ $lang := .Attributes.lang | default .Type }} + {{ if transform.CanHighlight $lang }} + <div class="{{ $class }}">{{ highlight .Inner $lang }}</div> + {{else}} + <pre><code class="{{ $class }}">{{.Inner}}</code></pre> + {{end}} +</div>
\ No newline at end of file diff --git a/themes/itheme/layouts/_default/_markup/render-heading.html b/themes/itheme/layouts/_default/_markup/render-heading.html new file mode 100644 index 0000000..5bbb7ac --- /dev/null +++ b/themes/itheme/layouts/_default/_markup/render-heading.html @@ -0,0 +1,12 @@ +<!-- + * @Description: + * @Author: Floyd Li (floyd.li@outlook.com) + * @Date: 2023-03-03 16:32:46 + * @LastEditors: Floyd Li (floyd.li@outlook.com) + * @LastEditTime: 2023-03-03 16:35:20 +--> +<div class="component-content pagebody component"> + <h{{ .Level }} id="{{ .Anchor | safeURL }}" class="pagebody-header"> + {{ .Text | safeHTML }} + </h{{ .Level }}> +</div>
\ No newline at end of file diff --git a/themes/itheme/layouts/_default/_markup/render-image.html b/themes/itheme/layouts/_default/_markup/render-image.html new file mode 100644 index 0000000..fb211d3 --- /dev/null +++ b/themes/itheme/layouts/_default/_markup/render-image.html @@ -0,0 +1,31 @@ + +{{- $src := .Destination -}} + +{{- with dict "Path" $src "Resources" .Page.Resources | partial "function/resource.html" -}} + {{- $src = .RelPermalink -}} +{{- end -}} + +{{ $sign := md5 $src}} + + +{{ $str := split .Text "|" }} + +{{ $text := index $str 0 }} + +{{ $size := default "big" (index $str 1) }} + +<figure class="image component image-fullbleed body-copy-wide nr-scroll-animation nr-scroll-animation--on image-{{ $size }}"> <div class="component-content"> + <div class="image-sharesheet"> + <div class="image image-load image-asset image-{{ $sign }}" id="lht{{ $sign }}"> + <picture class="picture"> + <img class="picture-image" data-src="{{ $src | safeURL }}" alt="{{ .Text }}" /> + </picture> + </div> + </div> + <div class="image-description"> + <div class="image-caption"> + {{ $text }} + </div> + </div> + </div> +</figure> diff --git a/themes/itheme/layouts/_default/baseof.html b/themes/itheme/layouts/_default/baseof.html new file mode 100644 index 0000000..fa816df --- /dev/null +++ b/themes/itheme/layouts/_default/baseof.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html class="js no-touch progressive-image no-reduced-motion progressive" lang="{{ .Site.Language.Lang }}"> + <head> + {{ partial "head.html" . }} + </head> + <body class="{{ if .IsPage }} page-article {{ else }} page-landing {{ end }} {{ if eq .Page.Params.theme "dark" }} theme-dark {{ end }}"> + <header> + {{ partial "header.html" . }} + </header> + {{ block "main" . }} + {{ end }} + {{ $isDark := eq .Page.Params.theme "dark"}} + {{ partial "footer.html" (dict "dark" $isDark) }} + + </body> + <!-- algolia related script --> + {{ if site.Params.algolia.enabled }} + <script src="{{ "js/algoliasearch.umd.js" | relURL }}"></script> + <script src="{{ "js/autocomplete-js.js" | relURL }}"></script> + {{ end }} + + <!-- custom js files --> + {{ range site.Params.js }} + <script src="{{ .url | relURL }}"></script> + {{ end }} +</html> diff --git a/themes/itheme/layouts/_default/single.html b/themes/itheme/layouts/_default/single.html new file mode 100644 index 0000000..4ea3d97 --- /dev/null +++ b/themes/itheme/layouts/_default/single.html @@ -0,0 +1,91 @@ +{{ define "main" }} + {{ $featured := .Page.Params.featured }} + {{ $notPlainPage := ne .Page.Params.plain true }} + <main id="main" class="main"> + <section> + <article class="article"> + {{ if $notPlainPage }} + <div class="{{ if $featured }} featured-header {{ else }} article-header {{ end }}"> + <div class="category component"> + <div class="component-content"> + <div class="category-eyebrow"> + <span class="category-eyebrow__category category_original"> + {{ if .Page.Params.tags }} + {{ range first 1 .Page.Params.tags }} + {{.}} + {{ end }} + {{ end }} + </span> + <span class="category-eyebrow__date">{{ .Page.Params.Date | time.Format ":date_long"}}</span> + </div> + </div> + </div> + <div class="pagetitle component"> + <div class="component-content"> + <h1 class="hero-headline">{{ .Title }}</h1> + </div> + </div> + <div class="component {{ if $featured }} featured-subhead {{ else }} article-subhead {{ end }}"> + <div class="component-content">{{ .Page.Params.description }}</div> + </div> + + <div class="tagssheet component"> + <div class="component-content"> + {{ range .Page.Params.tags}} + {{ $url := printf "%s%s" "tags/" . }} + <a href="{{ $url | urlize | relURL }}" class="tag"> + {{ . }} + </a> + {{ end }} + </div> + </div> + </div> + {{ else }} + <div class="article-header"> + <div class="pagetitle component"> + <div class="component-content"> + <h1 class="hero-headline">{{ .Title }}</h1> + </div> + </div> + </div> + {{ end }} + <div class="pagebody"> + <!-- TODO: hugo render hooks do not support custom markdown so here replace element manually --> + {{ $content := .Content | replaceRE "<p>" "<p class=\"component-content component\">" }} + {{ $content = $content | replaceRE "<table>" "<div class=\"component-content component\"><table>" }} + {{ $content = $content | replaceRE "</table>" "</table></div>" }} + {{ $content = $content | replaceRE "<ol>" "<div class=\"component-content component\"><ol>" }} + {{ $content = $content | replaceRE "</ol>" "</ol></div>" }} + {{ $content = $content | replaceRE "<ul>" "<div class=\"component-content component\"><ul>" }} + {{ $content = $content | replaceRE "</ul>" "</ul></div>" }} + {{ $content | safeHTML}} + </div> + {{- if and $notPlainPage site.Params.ShowCopyRight -}} + <div class="component"> + <div class="component-content"> + <div class="article-copyright"> + <p class="content"> + {{ i18n "copyright" }}: <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed" target="_blank">{{ i18n "licenses" }}</a> + </p> + <p class="content">{{ i18n "author"}}: {{ .Page.Params.author }} </p> + <p class="content">{{ i18n "postDate"}}: {{ .Page.Params.Date | time.Format ":date_long" }}</p> + </div> + </div> + </div> + {{- end -}} + </article> + </section> + </main> + + <script> + var script = document.createElement("script"); + {{- $js := resources.Get "js/initPost.js" -}} + {{- $opts := dict + "params" (dict "baseURL" site.BaseURL) + -}} + {{- $js = $js | js.Build $opts -}} + script.src = {{ $js.Permalink }}; + document.head.appendChild(script); + </script> +{{ end }} + diff --git a/themes/itheme/layouts/index.html b/themes/itheme/layouts/index.html new file mode 100644 index 0000000..9cdb913 --- /dev/null +++ b/themes/itheme/layouts/index.html @@ -0,0 +1,53 @@ +{{ define "main" }} +{{ $pages := where .Site.RegularPages "Params.plain" "ne" true }} + <section class="everydayfeed"> + <div class="section-content"> + <h2 class="section-head">{{ i18n "latestArticles" }}</h2> + <ul role="list" class="section-tiles"> + {{ range first 1 $pages }} + {{ $level := 1 }} + {{ partial "tile.html" (dict "context" . "level" $level) }} + {{ end }} + + {{ range first 4 ( after 1 $pages) }} + {{ $level := 2 }} + {{ partial "tile.html" (dict "context" . "level" $level) }} + {{ end }} + + {{ range first 6 ( after 5 $pages) }} + {{ $level := 3 }} + {{ partial "tile.html" (dict "context" . "level" $level) }} + {{ end }} + </ul> + </div> + </section> +{{- if site.Params.ShowMore -}} + <section class="more-from-newsroom"> + <div class="section-content"> + <h2 class="section-head">{{ i18n "moreArticles" }}</h2> + <ul role="list" class="section-tiles"> + + {{ range first 6 $pages }} + {{ partial "moreTile.html" (dict "context" .) }} + {{ end }} + </ul> + <div class="view-archive-wrapper"> + <a href="{{ "posts" | relURL }} " class="cta-primary-light" data-analytics-region="router" data-analytics-title="view archive">{{ i18n "viewArchive"}}</a> + </div> + </div> + </section> +{{- end -}} + <script> + document.addEventListener("DOMContentLoaded", function () { + var script = document.createElement("script"); + script.src = {{ "js/animation.js" | relURL }}; + document.head.appendChild(script); + + script.onload = function () { + console.log("lazyload.js loaded"); + // when layout is loaded, load the images + initImage(); + }; + }); + </script> +{{ end }}
\ No newline at end of file diff --git a/themes/itheme/layouts/partials/archiveItem.html b/themes/itheme/layouts/partials/archiveItem.html new file mode 100644 index 0000000..b0f969f --- /dev/null +++ b/themes/itheme/layouts/partials/archiveItem.html @@ -0,0 +1,27 @@ +{{ $cover := site.Params.defaultCover}} +{{ if .context.Params.cover }} + {{ $cover = .context.Params.cover }} +{{ end }} +{{- with .context.Resources.GetMatch (printf "%s" ($cover)) -}} + {{- $cover = .RelPermalink -}} +{{- end -}} + +<a href="{{ .context.Permalink }}" class="result__item row-anchor" aria-label="{{ .context.Title }}"> + <picture class="viewport-picture"> + <source media="(max-width: 734px)" srcset="{{ $cover }}"> + <img class="viewport-image" src="{{ $cover }}" srcset="{{ $cover }}" aria-hidden="true" alt=""> + </picture> + <div class="item__content"> + <p class="item__category category_update"> + {{ if .context.Params.tags }} + {{ range first 1 .context.Params.tags }} + {{.}} + {{ end }} + {{ end }} + </p> + <h3 class="item__headline"> + {{ .context.Title }} + </h3> + <p class="item__date">{{ .context.Date | time.Format ":date_long" }}</p> + </div> +</a>
\ No newline at end of file diff --git a/themes/itheme/layouts/partials/footer.html b/themes/itheme/layouts/partials/footer.html new file mode 100644 index 0000000..360de93 --- /dev/null +++ b/themes/itheme/layouts/partials/footer.html @@ -0,0 +1,34 @@ +<div class="footer-main {{ if eq .dark true}} footer-dark {{ end }}"> + <div class="content-body footer-wraper"> + <div class="footer-box"> + <div class="foot-nav"> + <div class="foot-nav-items"> + <div class="item"> + <div class="logo">{{ .Site.Title}}</div> + <div class="email">Email: <a href="mailto:{{ site.Params.email }}">{{ site.Params.email }}</a></div> + </div> + + <div class="item community"> + <div class="item-title">{{ i18n "socialMedia" }}</div> + {{ range site.Params.socialMedia }} + <a href="{{ .url }}" target="_blank">{{ .name}}</a> + {{ end }} + </div> + + <div class="item resources"> + <div class="item-title">{{ i18n "related" }}</div> + {{ range site.Params.blogroll }} + <a href="{{ .url }}" target="_blank">{{ .name}}</a> + {{ end }} + </div> + </div> + </div> + <div class="bottom"> + <div class="item copyright"> + © {{ now.Format "2006" }} + Powered by <a href="https://gohugo.io/" target="_blank">Hugo</a> & <a href="https://github.com/floyd-li/hugo-theme-itheme" target="_blank">iTheme</a> + </div> + </div> + </div> + </div> +</div>
\ No newline at end of file diff --git a/themes/itheme/layouts/partials/function/resource.html b/themes/itheme/layouts/partials/function/resource.html new file mode 100644 index 0000000..2febef3 --- /dev/null +++ b/themes/itheme/layouts/partials/function/resource.html @@ -0,0 +1,16 @@ +{{- $resource := 0 -}} +{{- $url := urls.Parse .Path -}} +{{- if not $url.Host | and $url.Path | and (strings.HasSuffix $url.Path "/" | not) -}} + {{- if .Resources -}} + {{- with .Resources.GetMatch $url.Path -}} + {{- $resource = . -}} + {{- end -}} + {{- end -}} + {{- if not $resource -}} + {{- with resources.Get $url.Path -}} + {{- $resource = . -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- return $resource -}} diff --git a/themes/itheme/layouts/partials/head.html b/themes/itheme/layouts/partials/head.html new file mode 100644 index 0000000..c4a4943 --- /dev/null +++ b/themes/itheme/layouts/partials/head.html @@ -0,0 +1,31 @@ +<head> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <link rel="icon" href="{{ "img/favicon.ico" | relURL }}"> + + <meta name="keyword" content="{{ .Site.Params.keyword }}"> + + {{- template "_internal/opengraph.html" . -}} + + <title>{{ .Title }}</title> + + <link rel="canonical" href="{{ .Permalink | relURL }}"> + + <link rel="stylesheet" href="{{ "css/global.css" | relURL }}"> + + <link rel="stylesheet" href="{{ "css/custom.css" | relURL }}"> + + <link rel="stylesheet" href="{{ "css/search.css" | relURL }}" /> + + <!-- algolia related style --> + {{ if site.Params.algolia.enabled }} + <link rel="stylesheet" href="{{ "css/autocomplete-theme-classic.css" | relURL }}" /> + {{ end }} + + <!-- custom style files --> + {{ range site.Params.css }} + <link rel="stylesheet" href="{{ .url | relURL }}" /> + {{ end }} + +</head>
\ No newline at end of file diff --git a/themes/itheme/layouts/partials/header.html b/themes/itheme/layouts/partials/header.html new file mode 100644 index 0000000..3ae060e --- /dev/null +++ b/themes/itheme/layouts/partials/header.html @@ -0,0 +1,59 @@ +<nav class="nav"> + <div class="nav-wrapper"> + <div class="nav-content-wrapper"> + <div class="nav-content"> + <a href="{{ "" | relURL }} " class="nav-title">{{ .Site.Title }}</a> + <div class="nav-menu"> + <div class="nav-item-wrapper"> + <a href="{{ "posts" | relURL }} " class="nav-item-content">{{ i18n "posts" }}</a> + </div> + {{- if .Site.GetPage "about" -}} + <div class="nav-item-wrapper"> + <a href="{{ "about" | relURL }}" class="nav-item-content">{{ i18n "about" }}</a> + </div> + {{- end -}} + {{- if site.Params.ShowRSS -}} + <div class="nav-item-wrapper"> + <a href="{{ "index.xml" | relURL }}" class="nav-item-content" target="_blank">RSS</a> + </div> + {{- end -}} + {{- if site.Params.algolia.enabled -}} + <div class="nav-item-wrapper"> + <a href="#" onclick="toggleSearchModal()" class="nav-item-content">{{ i18n "search" }}</a> + </div> + {{- end -}} + </div> + </div> + </div> + </div> +</nav> + +<script> + function toggleSearchModal(){ + const template = ` + <div class="modal-body"> + <div id="autocomplete" onclick="event.stopPropagation();"></div> + </div> + ` + const modal = document.querySelector("#modal-wrapper") + if(!modal){ + const div = document.createElement("div") + document.body.setAttribute("style","overflow: hidden;") + div.setAttribute("id", "modal-wrapper") + div.setAttribute("onclick", "toggleSearchModal()") + div.innerHTML = template + const script = document.createElement("script"); + {{- $js := resources.Get "js/algolia.js" -}} + {{- $opts := dict + "params" (dict "params" site.Params "baseURL" site.BaseURL) + -}} + {{- $js = $js | js.Build $opts -}} + script.setAttribute("src", {{ $js.Permalink }}) + div.appendChild(script) + document.body.append(div) + } else { + document.body.removeAttribute("style") + document.body.removeChild(modal) + } + } +</script>
\ No newline at end of file diff --git a/themes/itheme/layouts/partials/moreTile.html b/themes/itheme/layouts/partials/moreTile.html new file mode 100644 index 0000000..2ce1058 --- /dev/null +++ b/themes/itheme/layouts/partials/moreTile.html @@ -0,0 +1,39 @@ +<!-- + * @Description: + * @Author: Floyd Li (floyd.li@outlook.com) + * @Date: 2023-03-02 17:37:17 + * @LastEditors: Floyd Li (floyd.li@outlook.com) + * @LastEditTime: 2023-03-03 16:07:36 +--> +<li + role="listitem" + class="tile-item item-list nr-scroll-animation" + style="--nr-animation-transform-y:20%;" +> + <a + href={{ .context.Permalink }} + class="tile tile-list medium-load small-load large-load" + aria-label={label} + > + <div class="tile__media" aria-hidden="true"> + {{- $src := .context.Params.cover | default site.Params.defaultCover -}} + {{- with .context.Resources.GetMatch (printf "%s" ($src)) -}} + {{- $src = .RelPermalink -}} + {{- end -}} + <img class="cover image" data-src="{{ $src }}" alt="lt"/> + </div> + <div class="tile__description" aria-hidden="true"> + <div class="tile__head"> + <div class="tile__category"> + {{ if .context.Params.tags }} + {{ range first 1 .context.Params.tags }} + {{.}} + {{ end }} + {{ end }} + </div> + <div class="tile__headline">{{ .context.Title }}</div> + </div> + <div class="tile__timestamp icon-hide icon icon-before icon-clock">{{ .context.Date | time.Format ":date_long" }}</div> + </div> + </a> +</li> diff --git a/themes/itheme/layouts/partials/pagination.html b/themes/itheme/layouts/partials/pagination.html new file mode 100644 index 0000000..090746d --- /dev/null +++ b/themes/itheme/layouts/partials/pagination.html @@ -0,0 +1,30 @@ +{{ $pag := .Paginator }} +<nav class="pagination-ctrl" aria-label="{{ i18n "pagination" }}"> + <div class="pagination-ctrl__content"> + {{ if $pag.HasPrev }} + <a role="button" href="{{ $pag.Prev.URL }}" class="pagination-ctrl__btn icon icon-paginationleft pagination-ctrl__btn--previous" aria-disabled="false" aria-label="上一页" tabindex="0"> + {{ else }} + <a role="button" href="#" class="pagination-ctrl__btn icon icon-paginationleft pagination-ctrl__btn--previous pagination-ctrl__btn--disabled" aria-disabled="true" aria-label="上一页" tabindex="0"> + {{ end }} + <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#fff"> + <path d="M0 0h24v24H0V0z" fill="none"/> + <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6-6-6z"/> + </svg> + </a> + <div class="pagination-ctrl__info"> + <span class="pagination-ctrl__info__text pagination-ctrl__info--current">{{ $pag.PageNumber }}</span> + <span class="pagination-ctrl__info__text"> {{ i18n "of" }} </span> + <span class="pagination-ctrl__info__text pagination-ctrl__info--total">{{ $pag.TotalPages}}</span> + </div> + {{ if $pag.HasNext}} + <a role="button" href="{{ $pag.Next.URL }}" class="pagination-ctrl__btn icon icon-paginationright pagination-ctrl__btn--next" aria-label="下一页" aria-disabled="false"> + {{ else }} + <a role="button" href="#" class="pagination-ctrl__btn icon icon-paginationright pagination-ctrl__btn--next pagination-ctrl__btn--disabled" aria-label="下一页" aria-disabled="true"> + {{ end }} + <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#fff"> + <path d="M0 0h24v24H0V0z" fill="none"/> + <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6-6-6z"/> + </svg> + </a> + </div> +</nav>
\ No newline at end of file diff --git a/themes/itheme/layouts/partials/tile.html b/themes/itheme/layouts/partials/tile.html new file mode 100644 index 0000000..e8ce881 --- /dev/null +++ b/themes/itheme/layouts/partials/tile.html @@ -0,0 +1,50 @@ + +<li + role="listitem" + {{- $itemClass := "" -}} + {{- if eq .level 1 -}} + {{- $itemClass = "item-hero" -}} + {{- else if eq .level 2 -}} + {{- $itemClass = "item-2up" -}} + {{- else if eq .level 3 -}} + {{- $itemClass = "item-3up" -}} + {{- end -}} + class="{{- printf "tile-item nr-scroll-animation %s" $itemClass -}}" + style="--nr-animation-transform-y:20%;" +> + <a + href={{ .context.Permalink }} + class="tile large-load medium-load small-load + {{ if eq .level 1 }} + tile-hero + {{ else if eq .level 2 }} + tile-2up + {{ else if eq .level 3 }} + tile-3up + {{ end }} + " + aria-label={{ .label }} + > + <div class="tile__media" aria-hidden="true"> + {{- $src := .context.Params.cover | default site.Params.defaultCover -}} + {{- with .context.Resources.GetMatch (printf "%s" ($src)) -}} + {{- $src = .RelPermalink -}} + {{- end -}} + <img class="cover image" data-src="{{ $src }}" alt="lt"/> + </div> + + <div class="tile__description" aria-hidden="true"> + <div class="tile__head"> + <div class="tile__category"> + {{ if .context.Params.tags }} + {{ range first 1 .context.Params.tags }} + {{.}} + {{ end }} + {{ end }} + </div> + <div class="tile__headline">{{ .context.Title }}</div> + </div> + <div class="tile__timestamp icon-hide icon icon-before icon-clock">{{ .context.Date | time.Format ":date_long" }}</div> + </div> + </a> +</li> diff --git a/themes/itheme/layouts/posts/list.html b/themes/itheme/layouts/posts/list.html new file mode 100644 index 0000000..50048eb --- /dev/null +++ b/themes/itheme/layouts/posts/list.html @@ -0,0 +1,27 @@ +{{ define "main" }} +<div class="results"> + <div class="results__content"> + + {{ range (.Paginate (.Pages.GroupByDate "2006-01")).PageGroups }} + <div class="result" role="group"> + + <!-- add day manually to parse as date--> + {{ $month := printf "%s%s" .Key "-01"}} + <h2 class="result__title">{{ $month | time.Format "January 2006" }}</h2> + {{ range .Pages }} + + {{ partial "archiveItem.html" (dict "context" .) }} + + {{ end }} + + </div> + {{ end }} + </div> +</div> + +{{ partial "pagination.html" . }} + + +{{ end }} + + diff --git a/themes/itheme/layouts/taxonomy/list.html b/themes/itheme/layouts/taxonomy/list.html new file mode 100644 index 0000000..9813909 --- /dev/null +++ b/themes/itheme/layouts/taxonomy/list.html @@ -0,0 +1,13 @@ +{{ define "main" }} +<div class="results"> + <div class="results__content"> + <div class="result" role="group"> + <h2 class="result__title">“{{ .Title }}”</h2> + {{ range .Pages }} + {{ partial "archiveItem.html" (dict "context" .) }} + {{ end }} + </div> + </div> +</div> + +{{ end }}
\ No newline at end of file diff --git a/themes/itheme/layouts/taxonomy/terms.html b/themes/itheme/layouts/taxonomy/terms.html new file mode 100644 index 0000000..a3844db --- /dev/null +++ b/themes/itheme/layouts/taxonomy/terms.html @@ -0,0 +1,15 @@ +{{ define "main" }} +<div class="results"> + <div class="results__content"> + <div class="result" role="group"> + <h2 class="result__title">“{{ i18n "allTags" }}”</h2> + <div class="tags-list"> + {{ range .Pages }} + <a href="/tags/{{.Title | urlize}}">{{ .Title }} ({{ len .Pages}}) </a> + {{ end }} + </div> + </div> + </div> +</div> + +{{ end }}
\ No newline at end of file diff --git a/themes/itheme/static/css/autocomplete-theme-classic.css b/themes/itheme/static/css/autocomplete-theme-classic.css new file mode 100644 index 0000000..e5efa34 --- /dev/null +++ b/themes/itheme/static/css/autocomplete-theme-classic.css @@ -0,0 +1,2 @@ +/*! @algolia/autocomplete-theme-classic 1.8.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ +:root{--aa-search-input-height:44px;--aa-input-icon-size:20px;--aa-base-unit:16;--aa-spacing-factor:1;--aa-spacing:calc(var(--aa-base-unit)*var(--aa-spacing-factor)*1px);--aa-spacing-half:calc(var(--aa-spacing)/2);--aa-panel-max-height:650px;--aa-base-z-index:9999;--aa-font-size:calc(var(--aa-base-unit)*1px);--aa-font-family:inherit;--aa-font-weight-medium:500;--aa-font-weight-semibold:600;--aa-font-weight-bold:700;--aa-icon-size:20px;--aa-icon-stroke-width:1.6;--aa-icon-color-rgb:119,119,163;--aa-icon-color-alpha:1;--aa-action-icon-size:20px;--aa-text-color-rgb:38,38,39;--aa-text-color-alpha:1;--aa-primary-color-rgb:62,52,211;--aa-primary-color-alpha:0.2;--aa-muted-color-rgb:128,126,163;--aa-muted-color-alpha:0.6;--aa-panel-border-color-rgb:128,126,163;--aa-panel-border-color-alpha:0.3;--aa-input-border-color-rgb:128,126,163;--aa-input-border-color-alpha:0.8;--aa-background-color-rgb:255,255,255;--aa-background-color-alpha:1;--aa-input-background-color-rgb:255,255,255;--aa-input-background-color-alpha:1;--aa-selected-color-rgb:179,173,214;--aa-selected-color-alpha:0.205;--aa-description-highlight-background-color-rgb:245,223,77;--aa-description-highlight-background-color-alpha:0.5;--aa-detached-media-query:(max-width:680px);--aa-detached-modal-media-query:(min-width:680px);--aa-detached-modal-max-width:680px;--aa-detached-modal-max-height:500px;--aa-overlay-color-rgb:115,114,129;--aa-overlay-color-alpha:0.4;--aa-panel-shadow:0 0 0 1px rgba(35,38,59,0.1),0 6px 16px -4px rgba(35,38,59,0.15);--aa-scrollbar-width:13px;--aa-scrollbar-track-background-color-rgb:234,234,234;--aa-scrollbar-track-background-color-alpha:1;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb);--aa-scrollbar-thumb-background-color-alpha:1}@media (hover:none) and (pointer:coarse){:root{--aa-spacing-factor:1.2;--aa-action-icon-size:22px}}body.dark,body[data-theme=dark]{--aa-text-color-rgb:183,192,199;--aa-primary-color-rgb:146,138,255;--aa-muted-color-rgb:146,138,255;--aa-input-background-color-rgb:0,3,9;--aa-background-color-rgb:21,24,42;--aa-selected-color-rgb:146,138,255;--aa-selected-color-alpha:0.25;--aa-description-highlight-background-color-rgb:0 255 255;--aa-description-highlight-background-color-alpha:0.25;--aa-icon-color-rgb:119,119,163;--aa-panel-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--aa-scrollbar-track-background-color-rgb:44,46,64;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb)}.aa-Autocomplete *,.aa-DetachedFormContainer *,.aa-Panel *{box-sizing:border-box}.aa-Autocomplete,.aa-DetachedFormContainer,.aa-Panel{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);font-weight:400;line-height:1em;margin:0;padding:0;text-align:left}.aa-Form{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid rgba(128,126,163,.8);border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Form[focus-within]{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px rgba(62,52,211,.2),inset 0 0 0 2px rgba(62,52,211,.2);box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:medium none currentColor}.aa-Form:focus-within{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px rgba(62,52,211,.2),inset 0 0 0 2px rgba(62,52,211,.2);box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:medium none currentColor}.aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;height:44px;height:var(--aa-search-input-height);order:1}.aa-Label,.aa-LoadingIndicator{cursor:auto;flex-shrink:0;height:100%;padding:0;text-align:left}.aa-Label svg,.aa-LoadingIndicator svg{color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);height:auto;max-height:20px;max-height:var(--aa-input-icon-size);stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-input-icon-size)}.aa-LoadingIndicator,.aa-SubmitButton{height:100%;padding-left:11px;padding-left:calc(var(--aa-spacing)*0.75 - 1px);padding-right:8px;padding-right:var(--aa-spacing-half);width:47px;width:calc(var(--aa-spacing)*1.75 + var(--aa-icon-size) - 1px)}@media (hover:none) and (pointer:coarse){.aa-LoadingIndicator,.aa-SubmitButton{padding-left:3px;padding-left:calc(var(--aa-spacing-half)/2 - 1px);width:39px;width:calc(var(--aa-icon-size) + var(--aa-spacing)*1.25 - 1px)}}.aa-SubmitButton{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;margin:0}.aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-LoadingIndicator[hidden]{display:none}.aa-InputWrapper{order:3;position:relative;width:100%}.aa-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font:inherit;height:44px;height:var(--aa-search-input-height);padding:0;width:100%}.aa-Input::-moz-placeholder{color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input::placeholder{color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Input::-webkit-search-cancel-button,.aa-Input::-webkit-search-decoration,.aa-Input::-webkit-search-results-button,.aa-Input::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.aa-InputWrapperSuffix{align-items:center;display:flex;height:44px;height:var(--aa-search-input-height);order:4}.aa-ClearButton{align-items:center;background:none;border:0;color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;height:100%;margin:0;padding:0 12.8333333333px;padding:0 calc(var(--aa-spacing)*0.83333 - .5px)}@media (hover:none) and (pointer:coarse){.aa-ClearButton{padding:0 10.1666666667px;padding:0 calc(var(--aa-spacing)*0.66667 - .5px)}}.aa-ClearButton:focus,.aa-ClearButton:hover{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}.aa-ClearButton[hidden]{display:none}.aa-ClearButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-icon-size)}.aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:4px;border-radius:calc(var(--aa-spacing)/4);box-shadow:0 0 0 1px rgba(35,38,59,.1),0 6px 16px -4px rgba(35,38,59,.15);box-shadow:var(--aa-panel-shadow);margin:8px 0 0;overflow:hidden;position:absolute;transition:opacity .2s ease-in,filter .2s ease-in}@media screen and (prefers-reduced-motion){.aa-Panel{transition:none}}.aa-Panel button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;margin:0;padding:0}.aa-PanelLayout{height:100%;margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-y:auto;padding:0;position:relative;text-align:left}.aa-PanelLayoutColumns--twoGolden{display:grid;grid-template-columns:39.2% auto;overflow:hidden;padding:0}.aa-PanelLayoutColumns--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;padding:0}.aa-PanelLayoutColumns--three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;padding:0}.aa-Panel--stalled .aa-Source{filter:grayscale(1);opacity:.8}.aa-Panel--scrollable{margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-x:hidden;overflow-y:auto;padding:8px;padding:var(--aa-spacing-half);scrollbar-color:#fff #eaeaea;scrollbar-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha)) rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));scrollbar-width:thin}.aa-Panel--scrollable::-webkit-scrollbar{width:13px;width:var(--aa-scrollbar-width)}.aa-Panel--scrollable::-webkit-scrollbar-track{background-color:#eaeaea;background-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Panel--scrollable::-webkit-scrollbar-thumb{background-color:#fff;background-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha));border-radius:9999px;border:3px solid #eaeaea;border-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));border-right:2px solid rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Source{margin:0;padding:0;position:relative;width:100%}.aa-Source:empty{display:none}.aa-SourceNoResults{font-size:1em;margin:0;padding:16px;padding:var(--aa-spacing)}.aa-List{list-style:none;margin:0}.aa-List,.aa-SourceHeader{padding:0;position:relative}.aa-SourceHeader{margin:8px .5em 8px 0;margin:var(--aa-spacing-half) .5em var(--aa-spacing-half) 0}.aa-SourceHeader:empty{display:none}.aa-SourceHeaderTitle{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);display:inline-block;font-size:.8em;font-weight:600;font-weight:var(--aa-font-weight-semibold);margin:0;padding:0 8px 0 0;padding:0 var(--aa-spacing-half) 0 0;position:relative;z-index:9999;z-index:var(--aa-base-z-index)}.aa-SourceHeaderLine{border-bottom:1px solid #3e34d3;border-bottom:1px solid rgba(var(--aa-primary-color-rgb),1);display:block;height:2px;left:0;margin:0;opacity:.3;padding:0;position:absolute;right:0;top:8px;top:var(--aa-spacing-half);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-SourceFooterSeeAll{background:linear-gradient(180deg,#fff,rgba(128,126,163,.14));background:linear-gradient(180deg,rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha)),rgba(128,126,163,.14));border:1px solid rgba(128,126,163,.6);border:1px solid rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));border-radius:5px;box-shadow:inset 0 0 2px #fff,0 2px 2px -1px rgba(76,69,88,.15);color:inherit;font-size:.95em;font-weight:500;font-weight:var(--aa-font-weight-medium);padding:.475em 1em .6em;text-decoration:none}.aa-SourceFooterSeeAll:focus,.aa-SourceFooterSeeAll:hover{border:1px solid #3e34d3;border:1px solid rgba(var(--aa-primary-color-rgb),1);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1)}.aa-Item{align-items:center;border-radius:3px;cursor:pointer;display:grid;min-height:40px;min-height:calc(var(--aa-spacing)*2.5);padding:4px;padding:calc(var(--aa-spacing-half)/2)}.aa-Item[aria-selected=true]{background-color:rgba(179,173,214,.205);background-color:rgba(var(--aa-selected-color-rgb),var(--aa-selected-color-alpha))}.aa-Item[aria-selected=true] .aa-ActiveOnly,.aa-Item[aria-selected=true] .aa-ItemActionButton{visibility:visible}.aa-ItemIcon{align-items:center;background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:3px;box-shadow:inset 0 0 0 1px rgba(128,126,163,.3);box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));color:#7777a3;color:rgba(var(--aa-icon-color-rgb),var(--aa-icon-color-alpha));display:flex;flex-shrink:0;font-size:.7em;height:28px;height:calc(var(--aa-icon-size) + var(--aa-spacing-half));justify-content:center;overflow:hidden;stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);text-align:center;width:28px;width:calc(var(--aa-icon-size) + var(--aa-spacing-half))}.aa-ItemIcon img{height:auto;max-height:20px;max-height:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);max-width:20px;max-width:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);width:auto}.aa-ItemIcon svg{height:20px;height:var(--aa-icon-size);width:20px;width:var(--aa-icon-size)}.aa-ItemIcon--alignTop{align-self:flex-start}.aa-ItemIcon--noBorder{background:none;box-shadow:none}.aa-ItemIcon--picture{height:96px;width:96px}.aa-ItemIcon--picture img{max-height:100%;max-width:100%;padding:8px;padding:var(--aa-spacing-half)}.aa-ItemContent{align-items:center;cursor:pointer;display:grid;grid-gap:8px;gap:8px;grid-gap:var(--aa-spacing-half);gap:var(--aa-spacing-half);grid-auto-flow:column;line-height:1.25em;overflow:hidden}.aa-ItemContent:empty{display:none}.aa-ItemContent mark{background:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:700;font-weight:var(--aa-font-weight-bold)}.aa-ItemContent--dual{display:flex;flex-direction:column;justify-content:space-between;text-align:left}.aa-ItemContent--dual .aa-ItemContentSubtitle,.aa-ItemContent--dual .aa-ItemContentTitle{display:block}.aa-ItemContent--indented{padding-left:36px;padding-left:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-ItemContentBody{display:grid;grid-gap:4px;gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);gap:calc(var(--aa-spacing-half)/2)}.aa-ItemContentTitle{display:inline-block;margin:0 .5em 0 0;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.aa-ItemContentSubtitle{font-size:.92em}.aa-ItemContentSubtitleIcon:before{border-color:rgba(128,126,163,.64);border-color:rgba(var(--aa-muted-color-rgb),.64);border-style:solid;content:"";display:inline-block;left:1px;position:relative;top:-3px}.aa-ItemContentSubtitle--inline .aa-ItemContentSubtitleIcon:before{border-width:0 0 1.5px;margin-left:8px;margin-left:var(--aa-spacing-half);margin-right:4px;margin-right:calc(var(--aa-spacing-half)/2);width:10px;width:calc(var(--aa-spacing-half) + 2px)}.aa-ItemContentSubtitle--standalone{align-items:center;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));display:grid;grid-gap:8px;gap:8px;grid-gap:var(--aa-spacing-half);gap:var(--aa-spacing-half);grid-auto-flow:column;justify-content:start}.aa-ItemContentSubtitle--standalone .aa-ItemContentSubtitleIcon:before{border-radius:0 0 0 3px;border-width:0 0 1.5px 1.5px;height:8px;height:var(--aa-spacing-half);width:8px;width:var(--aa-spacing-half)}.aa-ItemContentSubtitleCategory{color:#807ea3;color:rgba(var(--aa-muted-color-rgb),1);font-weight:500}.aa-ItemContentDescription{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-size:.85em;max-width:100%;overflow-x:hidden;text-overflow:ellipsis}.aa-ItemContentDescription:empty{display:none}.aa-ItemContentDescription mark{background:rgba(245,223,77,.5);background:rgba(var(--aa-description-highlight-background-color-rgb),var(--aa-description-highlight-background-color-alpha));color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:500;font-weight:var(--aa-font-weight-medium)}.aa-ItemContentDash{color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));display:none;opacity:.4}.aa-ItemContentTag{background-color:rgba(62,52,211,.2);background-color:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha));border-radius:3px;margin:0 .4em 0 0;padding:.08em .3em}.aa-ItemLink,.aa-ItemWrapper{align-items:center;color:inherit;display:grid;grid-gap:4px;gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);gap:calc(var(--aa-spacing-half)/2);grid-auto-flow:column;justify-content:space-between;width:100%}.aa-ItemLink{color:inherit;text-decoration:none}.aa-ItemActions{display:grid;grid-auto-flow:column;height:100%;justify-self:end;margin:0 -5.3333333333px;margin:0 calc(var(--aa-spacing)/-3);padding:0 2px 0 0}.aa-ItemActionButton{align-items:center;background:none;border:0;color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;flex-shrink:0;padding:0}.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}@media (hover:none) and (pointer:coarse){.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:inherit}}.aa-ItemActionButton svg{color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));margin:5.3333333333px;margin:calc(var(--aa-spacing)/3);stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-action-icon-size)}.aa-ActiveOnly{visibility:hidden}.aa-PanelHeader{align-items:center;background:#3e34d3;background:rgba(var(--aa-primary-color-rgb),1);color:#fff;display:grid;height:var(--aa-modal-header-height);margin:0;padding:8px 16px;padding:var(--aa-spacing-half) var(--aa-spacing);position:relative}.aa-PanelHeader:after{background-image:linear-gradient(#fff,hsla(0,0%,100%,0));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));bottom:-8px;bottom:calc(var(--aa-spacing-half)*-1);content:"";height:8px;height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0}.aa-PanelFooter,.aa-PanelHeader:after{z-index:9999;z-index:var(--aa-base-z-index)}.aa-PanelFooter{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 1px 0 rgba(128,126,163,.3);box-shadow:inset 0 1px 0 rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;justify-content:space-between;margin:0;padding:16px;padding:var(--aa-spacing);position:relative}.aa-PanelFooter:after{background-image:linear-gradient(hsla(0,0%,100%,0),rgba(128,126,163,.6));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha)));content:"";height:16px;height:var(--aa-spacing);left:0;opacity:.12;pointer-events:none;position:absolute;right:0;top:-16px;top:calc(var(--aa-spacing)*-1);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-DetachedContainer{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));bottom:0;box-shadow:0 0 0 1px rgba(35,38,59,.1),0 6px 16px -4px rgba(35,38,59,.15);box-shadow:var(--aa-panel-shadow);display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-DetachedContainer:after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:8px 0 8px 2px;margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{border-bottom:1px solid rgba(128,126,163,.3);border-bottom:1px solid rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:8px;padding:var(--aa-spacing-half)}.aa-DetachedCancelButton{background:none;border:0;border-radius:3px;color:inherit;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));cursor:pointer;font:inherit;margin:0 0 0 8px;margin:0 0 0 var(--aa-spacing-half);padding:0 8px;padding:0 var(--aa-spacing-half)}.aa-DetachedCancelButton:focus,.aa-DetachedCancelButton:hover{box-shadow:inset 0 0 0 1px rgba(128,126,163,.3);box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha))}.aa-DetachedContainer--modal{border-radius:6px;bottom:inherit;height:auto;margin:0 auto;max-width:680px;max-width:var(--aa-detached-modal-max-width);position:absolute;top:3%}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:500px;max-height:var(--aa-detached-modal-max-height);padding-bottom:8px;padding-bottom:var(--aa-spacing-half);position:static}.aa-DetachedSearchButton{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid rgba(128,126,163,.8);border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;font:inherit;font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);height:44px;height:var(--aa-search-input-height);margin:0;padding:0 5.5px;padding:0 calc(var(--aa-search-input-height)/8);position:relative;text-align:left;width:100%}.aa-DetachedSearchButton:focus{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 3px rgba(62,52,211,.2),inset 0 0 0 2px rgba(62,52,211,.2);box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 3px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:medium none currentColor}.aa-DetachedSearchButtonIcon{align-items:center;color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);cursor:auto;display:flex;flex-shrink:0;height:100%;justify-content:center;width:36px;width:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-DetachedSearchButtonQuery{color:#262627;color:rgba(var(--aa-text-color-rgb),1);line-height:1.25em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aa-DetachedSearchButtonPlaceholder[hidden]{display:none}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(115,114,129,.4);background-color:rgba(var(--aa-overlay-color-rgb),var(--aa-overlay-color-alpha));height:100vh;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-GradientBottom,.aa-GradientTop{height:8px;height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-GradientTop{background-image:linear-gradient(#fff,hsla(0,0%,100%,0));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));top:0}.aa-GradientBottom{background-image:linear-gradient(hsla(0,0%,100%,0),#fff);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-background-color-rgb),1));border-bottom-left-radius:4px;border-bottom-left-radius:calc(var(--aa-spacing)/4);border-bottom-right-radius:4px;border-bottom-right-radius:calc(var(--aa-spacing)/4);bottom:0}@media (hover:none) and (pointer:coarse){.aa-DesktopOnly{display:none}}@media (hover:hover){.aa-TouchOnly{display:none}}
\ No newline at end of file diff --git a/themes/itheme/static/css/custom.css b/themes/itheme/static/css/custom.css new file mode 100644 index 0000000..3e89938 --- /dev/null +++ b/themes/itheme/static/css/custom.css @@ -0,0 +1,455 @@ +blockquote { + width: 653px; + margin-left: auto; + margin-right: auto; + box-sizing: border-box; +} + +@media only screen and (max-width: 1068px) { + blockquote { + width: 576px; + } +} + +@media only screen and (max-width: 734px) { + blockquote { + width: 87.5%; + max-width: 414px; + } +} + +h1.pagebody-header { + font-size: 1.5em; +} + +h2.pagebody-header{ + font-size: 1.4em; +} + +h3.pagebody-header{ + font-size: 1.3em; +} + +h4.pagebody-header{ + font-size: 1.2em; +} + +h5.pagebody-header{ + font-size: 1.1em; +} + +h6.pagebody-header{ + font-size: 1em; +} + +.code pre { + border-radius: 0; +} + +code { + margin: 0 0 0 0.2em; + line-height: 1.8em; +} + +.pagination-ctrl { + margin-top: 60px; + margin-bottom: 60px +} + +@media only screen and (max-width: 734px) { + .pagination-ctrl { + margin-top:13px; + margin-bottom: 45px + } +} + +.pagination-ctrl__content { + max-width: 980px; + margin: 0 auto; + padding: 0 22px; + max-width: 330px; + margin: 0 auto; + position: relative; + display: flex; + align-items: center +} + +@media only screen and (max-width: 734px) { + .pagination-ctrl__content { + padding:0 16px; + max-width:314px; + } +} + +.pagination-ctrl__btn { + display: block; + background-color: #06c; + border-radius: 100%; + font-size: 36px; + height: 1em; + line-height: 1em; + position: relative; + text-align: center; + transition: background-color 0.3s ease; + width: 1em +} + +.pagination-ctrl__btn.hide { + display: none +} + + +@media (hover: hover) { + .pagination-ctrl__btn:hover { + background-color:#1d1d1f; + text-decoration: none + } +} + +.pagination-ctrl__btn[data-focus-method=key] { + background-color: #1d1d1f; + text-decoration: none +} + +.pagination-ctrl__btn--disabled { + background-color: #c4c4c4; + pointer-events: none +} + +.pagination-ctrl__info { + font-size: 17px; + line-height: 1.47059; + font-weight: 400; + letter-spacing: -.022em; + font-family: "SF Pro Text","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif; + text-align: center; + flex: 1 0 1px +} + +.pagination-ctrl__info:lang(zh-CN) { + font-family: "SF Pro SC","SF Pro Text","SF Pro Icons","PingFang SC","Helvetica Neue","Helvetica","Arial",sans-serif +} + +.pagination-ctrl__info__text { + display: inline-block; + vertical-align: middle +} + + +.icon.icon-paginationleft { + transform: scaleX(-1) +} + + +.results__content { + margin-left: auto; + margin-right: auto; + width: 980px +} + +@media only screen and (min-width: 1441px) { + .results__content { + margin-left:auto; + margin-right: auto; + width: 980px + } +} + +@media only screen and (max-width: 1068px) { + .results__content { + margin-left:auto; + margin-right: auto; + width: 692px + } +} + +@media only screen and (max-width: 734px) { + .results__content { + margin-left:auto; + margin-right: auto; + width: 87.5% + } +} + +.result:last-of-type { + border-bottom: 1px solid #d2d2d7; + padding-bottom: 32px; + margin-bottom: 80px +} + +@media only screen and (max-width: 1068px) { + .result:last-of-type { + padding-bottom:24px; + margin-bottom: 64px + } +} + +@media only screen and (max-width: 734px) { + .result:last-of-type { + margin-bottom:44px + } +} + +.result__title { + margin-bottom: 16px; + font-size: 28px; + line-height: 1.14286; + font-weight: 700; + letter-spacing: .007em; + font-family: "SF Pro Display","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif; + margin-top: 52px +} + +.result__title:lang(zh-CN) { + font-family: "SF Pro SC","SF Pro Display","SF Pro Icons","PingFang SC","Helvetica Neue","Helvetica","Arial",sans-serif +} + +@media only screen and (max-width: 1068px) { + .result__title { + font-size:24px; + line-height: 1.16667; + font-weight: 700; + letter-spacing: .009em; + font-family: "SF Pro Display","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif + } + + .result__title:lang(zh-CN) { + font-family: "SF Pro SC","SF Pro Display","SF Pro Icons","PingFang SC","Helvetica Neue","Helvetica","Arial",sans-serif + } +} + +@media only screen and (max-width: 734px) { + .result__title { + font-size:21px; + line-height: 1.19048; + font-weight: 700; + letter-spacing: .011em; + font-family: "SF Pro Display","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif + } + + .result__title:lang(zh-CN) { + font-family: "SF Pro SC","SF Pro Display","SF Pro Icons","PingFang SC","Helvetica Neue","Helvetica","Arial",sans-serif + } +} + +@media only screen and (max-width: 1068px) { + .result__title { + margin-top:48px + } +} + +@media only screen and (max-width: 734px) { + .result__title { + margin-top:44px + } +} + +.result__summary { + color: #6e6e73; + text-transform: lowercase; + font-size: 12px; + line-height: 1.33337; + font-weight: 600; + letter-spacing: -.01em; + font-family: "SF Pro Text","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif; + margin-top: 40px; + margin-bottom: 32px +} + +.result__summary:lang(zh-CN) { + font-family: "SF Pro SC","SF Pro Text","SF Pro Icons","PingFang SC","Helvetica Neue","Helvetica","Arial",sans-serif +} + +@media only screen and (max-width: 1068px) { + .result__summary { + margin-bottom:24px + } +} + +@media only screen and (max-width: 734px) { + .result__summary { + margin-top:32px + } +} + +.result__item { + display: flex; + justify-content: flex-start; + margin: 0; + border-top: 1px solid #d2d2d7; + align-items: center; + padding: 32px 0 +} + +@media only screen and (max-width: 1068px) { + .result__item { + padding:24px 0 + } +} + +@media only screen and (max-width: 734px) { + .result__item { + align-items:flex-start + } +} + +.result__item:last-of-type { + padding-bottom: 0 +} + +.result__item.row-anchor:hover { + text-decoration: none +} + +.result__item .viewport-picture { + align-self: flex-start; + flex-shrink: 0; + font-size: 0; + width: 295px +} + +@media only screen and (max-width: 1068px) { + .result__item .viewport-picture { + width:264px + } +} + +@media only screen and (max-width: 734px) { + .result__item .viewport-picture { + width:106px + } +} + +.result__item .viewport-image { + width: 100%; + border-radius: 16px +} + +@media only screen and (max-width: 734px) { + .result__item .viewport-image { + border-radius:7px + } +} + + +.item__content { + margin-left: 32px +} + +@media only screen and (max-width: 1068px) { + .item__content { + margin-left:24px + } +} + +@media only screen and (max-width: 734px) { + .item__content { + margin-left:16px + } +} + +.item__category { + color: #6e6e73; + font-size: 12px; + line-height: 1.33337; + font-weight: 700; + letter-spacing: -.01em; + font-family: "SF Pro Text","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif; + text-transform: uppercase +} + +.item__category:lang(zh-CN) { + font-family: "SF Pro SC","SF Pro Text","SF Pro Icons","PingFang SC","Helvetica Neue","Helvetica","Arial",sans-serif +} + +.item__headline { + font-size: 24px; + line-height: 1.16667; + font-weight: 700; + letter-spacing: .009em; + font-family: "SF Pro Display","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif; + margin-top: 8px +} + +.item__headline:lang(zh-CN) { + font-family: "SF Pro SC","SF Pro Display","SF Pro Icons","PingFang SC","Helvetica Neue","Helvetica","Arial",sans-serif +} + +@media only screen and (max-width: 1068px) { + .item__headline { + font-size:21px; + line-height: 1.19048; + font-weight: 700; + letter-spacing: .011em; + font-family: "SF Pro Display","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif + } + + .item__headline:lang(zh-CN) { + font-family: "SF Pro SC","SF Pro Display","SF Pro Icons","PingFang SC","Helvetica Neue","Helvetica","Arial",sans-serif + } +} + +@media only screen and (max-width: 734px) { + .item__headline { + font-size:17px; + line-height: 1.23536; + font-weight: 700; + letter-spacing: -.022em; + font-family: "SF Pro Text","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif + } + + .item__headline:lang(zh-CN) { + font-family: "SF Pro SC","SF Pro Text","SF Pro Icons","PingFang SC","Helvetica Neue","Helvetica","Arial",sans-serif + } +} + +@media only screen and (max-width: 734px) { + .item__headline { + margin-top:4px + } +} + +.item__date { + color: #6e6e73; + font-size: 14px; + line-height: 1.42859; + font-weight: 600; + letter-spacing: -.016em; + font-family: "SF Pro Text","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif; + margin-top: 12px +} + +.item__date:lang(zh-CN) { + font-family: "SF Pro SC","SF Pro Text","SF Pro Icons","PingFang SC","Helvetica Neue","Helvetica","Arial",sans-serif +} + +@media only screen and (max-width: 734px) { + .item__date { + font-size:14px; + line-height: 1.28577; + font-weight: 600; + letter-spacing: -.016em; + font-family: "SF Pro Text","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif + } + + .item__date:lang(zh-CN) { + font-family: "SF Pro SC","SF Pro Text","SF Pro Icons","PingFang SC","Helvetica Neue","Helvetica","Arial",sans-serif + } +} + +@media only screen and (max-width: 734px) { + .item__date { + margin-top:8px + } +} + + +.tags-list a{ + color: var(--footer-link-color); + padding: 5px 1rem; + background: var(--footer-background); + border-radius: 5px; + margin-bottom: 1rem; + display: inline-block; + margin-right: 1rem; +}
\ No newline at end of file diff --git a/themes/itheme/static/css/global.css b/themes/itheme/static/css/global.css new file mode 100644 index 0000000..33d6b95 --- /dev/null +++ b/themes/itheme/static/css/global.css @@ -0,0 +1,7392 @@ +:root { + --black: #1d1d1f; + --bg-primary: #f5f5f7; + --gray-primary: #f2f2f2; + --gray-text: #515154; + --primary: #8129d9; + --blue: #0071e3; + --footer-background: #f5f5f7; + --footer-border-color: #d2d2d7; + --footer-text-color: #6e6e73; + --footer-link-color: #424245; + --footer-pipe-color: #86868b; + --footer-directory-title-color: #1d1d1f; + --footer-directory-title-color-hover: #000; +} + + +*, +::before, +::after { + box-sizing: inherit; +} + +html { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100% +} + +body { + margin: 0; + padding: 0 +} + +ul, +ol, +li, +dl, +dt, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hgroup, +p, +blockquote, +figure, +form, +fieldset, +input, +legend, +pre, +abbr, +button { + margin: 0; + padding: 0 +} + +pre, +code, +address, +caption, +th, +figcaption { + font-size: .875em; + font-family: SF Mono, monaco, -apple-system, roboto mono, monospace; + font-weight: normal; + font-style: normal +} + +fieldset, +iframe { + border: 0 +} + +caption, +th { + text-align: left +} + +table { + border-collapse: collapse; + border-spacing: 0 +} + +main, +summary, +details { + display: block +} + +audio, +canvas, +video, +progress { + vertical-align: baseline +} + +button { + background: none; + border: 0; + box-sizing: content-box; + color: inherit; + cursor: pointer; + font: inherit; + line-height: inherit; + overflow: visible; + vertical-align: inherit +} + +button:disabled { + cursor: default +} + +:focus[data-focus-method="mouse"]:not(input):not(textarea):not(select), +:focus[data-focus-method="touch"]:not(input):not(textarea):not(select) { + outline: none +} + +::-moz-focus-inner { + border: 0; + padding: 0 +} + +html { + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + font-size: 106.25%; + quotes: "“" "”" +} + +body { + font-size: 17px; + line-height: 1.47059; + font-weight: 400; + letter-spacing: -.022em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + background-color: #fff; + color: #1d1d1f; + font-style: normal +} + +.content-body { + margin: 0 auto; + max-width: 980px; + padding: 0 22px; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: 600; + color: #1d1d1f +} + +h1 img, +h2 img, +h3 img, +h4 img, +h5 img, +h6 img { + display: block; + margin: 0 +} + +h1+*, +h2+*, +h3+*, +h4+*, +h5+*, +h6+* { + margin-top: .8em +} + +h1+h1, +h1+h2, +h1+h3, +h1+h4, +h1+h5, +h1+h6, +h2+h1, +h2+h2, +h2+h3, +h2+h4, +h2+h5, +h2+h6, +h3+h1, +h3+h2, +h3+h3, +h3+h4, +h3+h5, +h3+h6, +h4+h1, +h4+h2, +h4+h3, +h4+h4, +h4+h5, +h4+h6, +h5+h1, +h5+h2, +h5+h3, +h5+h4, +h5+h5, +h5+h6, +h6+h1, +h6+h2, +h6+h3, +h6+h4, +h6+h5, +h6+h6 { + margin-top: .4em +} + +p+h1, +ul+h1, +ol+h1, +p+h2, +ul+h2, +ol+h2, +p+h3, +ul+h3, +ol+h3, +p+h4, +ul+h4, +ol+h4, +p+h5, +ul+h5, +ol+h5, +p+h6, +ul+h6, +ol+h6 { + margin-top: 1.6em +} + +.heading-collapsed+* { + margin-top: 0 +} + +p+*, +ul+*, +ol+* { + margin-top: .8em +} + +ul, +ol { + margin-left: 1.17647em +} + +ul ul, +ul ol, +ol ul, +ol ol { + margin-top: 0; + margin-bottom: 0 +} + +nav ul, +nav ol { + margin: 0; + list-style: none +} + +li li { + font-size: 1em +} + +a, +.link { + color: #06c; + letter-spacing: inherit +} + +a:link, +a:visited, +.link:link, +.link:visited { + text-decoration: none +} + +a:hover, +.link:hover { + text-decoration: underline +} + +a:active, +.link:active { + text-decoration: none +} + +a:disabled, +.link:disabled { + opacity: .32 +} + + +.css-sticky { + position: -webkit-sticky; + position: sticky; +} + +header{ + position: sticky; + top: 0; + z-index: 2; +} + +.nav { + position: relative; + top: 0; + left: 0; + width: 100%; + min-width: 1024px; + z-index: 9997; + height: 3.05882rem; + backdrop-filter: saturate(180%) blur(20px); +} + +.nav::after{ + position: absolute; + content: " "; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: rgba(255,255,255,0.7); +} + +.theme-dark .nav::after { + background: rgba(29,29,31,0.7); +} + +.nav-title { + color: #1d1d1f; + font-size: 21px; + line-height: 1.14286; + font-weight: 600; + letter-spacing: 0.011em; + cursor: default; + display: block; + float: left; + margin: 14px 0 -18px; + padding: 0; + height: 52px; + white-space: nowrap; +} + + +.nav-item-content { + font-size: 14px; + font-weight: 500; + text-decoration: none !important; + color: #676b5f; +} + +@media only screen and (max-width: 734px) { + .nav { + height: 2.82353rem; + } + + .nav-title { + font-size: 21px; + line-height: 21px; + } + + .nav-item-content { + font-size: 14px; + } +} + +@media only screen and (max-width: 1044px) { + .nav { + min-width: 320px; + } +} + +@media only screen and (max-width: 767px) { + .nav { + height: 48px; + } +} + +.nav-wrapper { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: auto; + min-height: 100%; + z-index: 1; +} + +.nav-content-wrapper { + margin: 0 auto; + max-width: 980px; + padding: 0 22px; + position: relative; + z-index: 2; +} + +.nav-content { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; +} + +.nav-menu { + display: flex; + flex-direction: row; + align-items: center; +} + + + +a.nav-title:hover { + cursor: pointer; + text-decoration: none; +} + +.nav-item-wrapper { + margin: 0px 5px; + padding: 6px 10px; + border-radius: 10px; +} + + +.nav-item-wrapper a:hover { + color: #2997ff; +} + +.main { + padding: 0; + overflow-x: hidden +} + +.nr-scroll-animation { + --nr-animation-transform-x: 0; + --nr-animation-transform-y: 0; + --nr-animation-transform-scale: 1; + --nr-animation-duration: 800ms; +} + +.nr-scroll-animation--off { + opacity: 0 !important; +} + +.nr-scroll-animation--on { + animation-name: nr-scroll-animation; + animation-duration: var(--nr-animation-duration); + animation-timing-function: cubic-bezier(0.4, 0, 0.25, 1); +} + +.tile { + background-color: #fff; + display: flex; + border-radius: 16px; + overflow: hidden; + z-index: 0; + position: relative +} + +.tile .tile__description { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 1 +} + +.tile .tile__media { + direction: ltr +} + +@media only screen and (max-width: 734px) { + .tile { + border-radius: 12px + } +} + +.tile__category, +.tile__timestamp { + color: #6e6e73 +} + +.tile__headline { + color: #1d1d1f; + -webkit-line-clamp: 6; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +@media (hover: hover) { + .tile:hover { + text-decoration: none + } +} + +.tile[data-focus-method=key] { + text-decoration: none +} + +.tile .media--video, +.tile .image { + transition: transform 400ms cubic-bezier(0.4, 0, 0.25, 1) 0ms +} + +@media (hover: hover) { + + html.no-touch.no-reduced-motion .tile:hover .image, + html.no-touch.no-reduced-motion .tile:hover .media--video { + transform: scale(1.03) + } +} + +html.no-touch.no-reduced-motion .tile[data-focus-method=key] .image, +html.no-touch.no-reduced-motion .tile[data-focus-method=key] .media--video { + transform: scale(1.03) +} + +.tile__category { + font-size: 12px; + line-height: 1.33337; + font-weight: 700; + letter-spacing: -.01em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__category:lang(ar) { + line-height: 1.66667; + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__category:lang(ja) { + line-height: 1.41667; + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__category:lang(ko) { + line-height: 1.41667; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__category:lang(zh) { + letter-spacing: 0em +} + +.tile__category:lang(th) { + line-height: 1.33337; + letter-spacing: 0em; + font-family: "SF Pro TH", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__category:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__category:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__category:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__category:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__timestamp { + font-size: 14px; + line-height: 1.28577; + font-weight: 600; + letter-spacing: -.016em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + display: flex; + justify-content: flex-start; + align-items: center +} + +.tile__timestamp:lang(ar) { + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__timestamp:lang(ja) { + line-height: 1.35718; + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__timestamp:lang(ko) { + line-height: 1.42859; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__timestamp:lang(zh) { + letter-spacing: 0em +} + +.tile__timestamp:lang(th) { + line-height: 1.35718; + letter-spacing: 0em; + font-family: "SF Pro TH", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__timestamp:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__timestamp:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__timestamp:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__timestamp:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile__media { + position: relative; + z-index: 0; + flex-grow: 0; + flex-shrink: 0; + overflow: hidden +} + +.image-load { + opacity: 0; + transform: translateY(20vh); +} + +.image-loaded { + opacity: 1; + transform: none; + transition: transform 800ms cubic-bezier(0.4, 0, 0.25, 1) 0ms, opacity 1s cubic-bezier(0.4, 0, 0.25, 1) 0ms +} + +html.js .tile[data-progressive-load] .image { + background-image: none +} + + +@keyframes nr-scroll-animation { + from { + opacity: 0; + transform: translate(var(--nr-animation-transform-x), var(--nr-animation-transform-y)) scale(var(--nr-animation-transform-scale)) + } + + to { + opacity: 1; + transform: translate(0, 0) scale(1) + } +} + +html.js .tile.large-load .image { + opacity: 0; + transform: translateY(20px); +} + +html.js .tile.large-loaded .image { + opacity: 1; + transform: none; + transition: transform 400ms cubic-bezier(0.4, 0, 0.25, 1) 0ms, opacity 1s cubic-bezier(0.4, 0, 0.25, 1) 0ms +} + +@media only screen and (max-width: 1068px) { + html.js .tile.medium-load .image { + opacity: 0; + transition: none; + transform: translateY(20px); + } + + html.js .tile.medium-loaded .image { + opacity: 1; + transform: none; + transition: transform 400ms cubic-bezier(0.4, 0, 0.25, 1) 0ms, opacity 1s cubic-bezier(0.4, 0, 0.25, 1) 0ms + } +} + +@media only screen and (max-width: 734px) { + html.js .tile.small-load .image { + opacity: 0; + transform: translateY(20px); + transition: none + } + + html.js .tile.small-loaded .image { + opacity: 1; + transform: none; + transition: transform 400ms cubic-bezier(0.4, 0, 0.25, 1) 0ms, opacity 1s cubic-bezier(0.4, 0, 0.25, 1) 0ms + } +} + +.image { + z-index: 0 +} + +@media only screen and (inverted-colors) { + .image { + filter: invert(1) + } +} + +.media--video { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 1 +} + +.video-ready .image { + display: none +} + +.everydayfeed { + padding-bottom: 80px; + overflow: hidden; + background-color: #f5f5f7; + margin-top: 0 +} + +@media only screen and (max-width: 1068px) { + .everydayfeed { + padding-bottom: 64px + } +} + +@media only screen and (max-width: 734px) { + .everydayfeed { + padding-bottom: 40px + } +} + +.everydayfeed .desktop-notification { + padding-top: 16px; + padding-bottom: 24px +} + +@media only screen and (max-width: 734px) { + .everydayfeed .desktop-notification { + padding-top: 12px; + padding-bottom: 12px + } +} + + +.section-content { + margin-left: auto; + margin-right: auto; + width: 980px; +} + +@media only screen and (min-width: 1441px) { + .section-content { + margin-left: auto; + margin-right: auto; + width: 980px; + } +} + +@media only screen and (max-width: 1068px) { + .section-content { + margin-left: auto; + margin-right: auto; + width: 692px; + } +} + +@media only screen and (max-width: 734px) { + .section-content { + margin-left: auto; + margin-right: auto; + width: 87.5%; + } +} + +@media only screen and (max-width: 734px) { + .section-content { + max-width: 366px; + } +} + +.section-head { + font-size: 32px; + line-height: 1.125; + font-weight: 700; + letter-spacing: 0.004em; + margin-top: 24px; + margin-bottom: 24px; +} + +@media only screen and (max-width: 1068px) { + .section-head { + font-size: 28px; + line-height: 1.14286; + font-weight: 700; + letter-spacing: 0.007em; + margin-bottom: 16px; + } +} + +.more-from-newsroom { + padding-top: 10px; + padding-bottom: 80px; + background-color: #fff; + overflow: hidden +} + +@media only screen and (max-width: 1068px) { + .more-from-newsroom { + padding-top: 14px; + padding-bottom: 64px + } +} + +@media only screen and (max-width: 734px) { + .more-from-newsroom { + padding-top: 10px; + padding-bottom: 52px + } +} + +.more-from-newsroom .section-head { + margin-bottom: 40px +} + +@media only screen and (max-width: 1068px) { + .more-from-newsroom .section-head { + margin-bottom: 28px + } +} + +@media only screen and (max-width: 734px) { + .more-from-newsroom .section-head { + margin-bottom: 24px + } +} + +.more-from-newsroom .section-tiles { + margin-right: -64px; + margin-top: 0; + justify-content: flex-start +} + +.more-from-newsroom .section-tiles::before { + margin-bottom: 32px +} + +.more-from-newsroom .section-tiles::after { + margin-top: 32px +} + +@media only screen and (max-width: 1068px) { + .more-from-newsroom .section-tiles { + margin-right: 0 + } + + .more-from-newsroom .section-tiles::before, + .more-from-newsroom .section-tiles::after { + width: 100% + } + + .more-from-newsroom .section-tiles::before { + margin-bottom: 24px + } + + .more-from-newsroom .section-tiles::after { + margin-top: 24px + } +} + +.more-from-newsroom .tile-item { + display: flex; + flex-direction: column; + width: 457px; + margin-bottom: 32px; + margin-right: 64px; + flex-grow: 1 +} + +@media only screen and (max-width: 1068px) { + .more-from-newsroom .tile-item { + margin-right: 0; + width: 100%; + margin-bottom: 24px + } +} + +.more-from-newsroom .tile-item::after { + content: ''; + flex: 0 0 auto; + height: 1px; + display: block; + background-color: #d0d0d0; + margin-top: 32px +} + +@media only screen and (max-width: 1068px) { + .more-from-newsroom .tile-item::after { + margin-top: 24px + } +} + +.more-from-newsroom .tile-item:nth-child(odd)::after { + width: calc(100% + (32px * 2)) +} + +@media only screen and (max-width: 1068px) { + .more-from-newsroom .tile-item:nth-child(odd)::after { + width: 100% + } +} + +.more-from-newsroom .tile-item:nth-last-of-type(1) { + margin-bottom: 0 +} + +.more-from-newsroom .tile-item:nth-last-of-type(1)::after { + display: none +} + +@media only screen and (min-width: 1069px) { + .more-from-newsroom .tile-item:nth-last-of-type(2):nth-of-type(odd) { + margin-bottom: 0 + } + + .more-from-newsroom .tile-item:nth-last-of-type(2):nth-of-type(odd)::after { + display: none + } +} + +.more-from-newsroom .view-archive-wrapper { + margin-top: 40px +} + +@media only screen and (max-width: 1068px) { + .more-from-newsroom .view-archive-wrapper { + margin-top: 28px + } +} + +@media only screen and (max-width: 734px) { + .more-from-newsroom .view-archive-wrapper { + margin-top: 24px + } +} + +.section-tiles { + align-items: stretch; + display: flex; + flex-flow: row wrap; + justify-content: space-between; + margin: 0 +} + +.section-tiles::after { + content: ''; + flex: 0 0 303px +} + + + +.section-tiles { + align-items: stretch; + display: flex; + flex-flow: row wrap; + justify-content: space-between; + margin: 0 +} + +.section-tiles::after { + content: ''; + flex: 0 0 303px +} + +@media only screen and (min-width: 1441px) { + .feature-stories .section-tiles::after { + content: none + } +} + + +.featured-header.with-keyline::after { + content: ''; + display: block; + border-top: 1px solid #d2d2d7; + width: 653px; + margin-left: auto; + margin-right: auto; + margin-top: 44px +} + +@media only screen and (max-width: 1068px) { + .featured-header.with-keyline::after { + width: 576px + } +} + +@media only screen and (max-width: 734px) { + .featured-header.with-keyline::after { + width: 87.5% + } +} + +@media only screen and (max-width: 1068px) { + .featured-header.with-keyline::after { + margin-top: 36px + } +} + +@media only screen and (max-width: 734px) { + .featured-header.with-keyline::after { + margin-top: 32px + } +} + +.featured-header .category-eyebrow { + display: flex; + justify-content: center; + margin-top: 16px +} + +@media only screen and (max-width: 734px) { + .featured-header .category-eyebrow { + margin-top: 20px + } +} + +.featured-header .category-eyebrow__category, +.featured-header .category-eyebrow__date { + color: #6e6e73; + margin: 4px 0 +} + +.featured-header .category-eyebrow__category { + display: flex; + align-items: center +} + +.featured-header .category-eyebrow__category::after { + color: #6e6e73; + content: '\2022'; + margin: 0 8px +} + +.featured-header .pagetitle .component-content { + width: 83.33333% +} + +@media only screen and (max-width: 1068px) { + .featured-header .pagetitle .component-content { + width: 100% + } +} + +@media only screen and (max-width: 734px) { + .featured-header .pagetitle .component-content { + margin-left: auto; + margin-right: auto; + width: 87.5% + } +} + +.featured-header .pagetitle .hero-headline { + font-size: 56px; + line-height: 1.07143; + font-weight: 700; + letter-spacing: -.005em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + text-align: center +} + +.featured-header .pagetitle .hero-headline:lang(ar) { + line-height: 1.21429; + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .pagetitle .hero-headline:lang(ja) { + line-height: 1.125; + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .pagetitle .hero-headline:lang(ko) { + line-height: 1.17865; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .pagetitle .hero-headline:lang(zh) { + letter-spacing: 0em +} + +.featured-header .pagetitle .hero-headline:lang(th) { + line-height: 1.33929; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .pagetitle .hero-headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .pagetitle .hero-headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .pagetitle .hero-headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .pagetitle .hero-headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .featured-header .pagetitle .hero-headline { + font-size: 48px; + line-height: 1.08349; + font-weight: 700; + letter-spacing: -.003em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(ar) { + line-height: 1.25; + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(ja) { + line-height: 1.14599; + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(ko) { + line-height: 1.1875; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(zh) { + letter-spacing: 0em + } + + .featured-header .pagetitle .hero-headline:lang(th) { + line-height: 1.33349; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 734px) { + .featured-header .pagetitle .hero-headline { + font-size: 32px; + line-height: 1.125; + font-weight: 700; + letter-spacing: .004em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(ar) { + line-height: 1.34375; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(ja) { + line-height: 1.21875; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(ko) { + line-height: 1.21875; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .pagetitle .hero-headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.featured-header .featured-subhead { + font-size: 24px; + line-height: 1.16667; + font-weight: 500; + letter-spacing: .009em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + text-align: center; + margin-top: 20px; + margin-bottom: 0 +} + +.featured-header .featured-subhead:lang(ar) { + line-height: 1.33341; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .featured-subhead:lang(ja) { + line-height: 1.25; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .featured-subhead:lang(ko) { + line-height: 1.29167; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .featured-subhead:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .featured-subhead:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .featured-subhead:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .featured-subhead:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.featured-header .featured-subhead:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .featured-header .featured-subhead { + font-size: 21px; + line-height: 1.19048; + font-weight: 500; + letter-spacing: .011em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .featured-subhead:lang(ja) { + line-height: 1.2381; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .featured-subhead:lang(ko) { + line-height: 1.2858; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .featured-subhead:lang(th) { + line-height: 1.381; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .featured-subhead:lang(ar) { + line-height: 1.4286; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .featured-subhead:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .featured-subhead:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .featured-subhead:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .featured-header .featured-subhead:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 734px) { + .featured-header .featured-subhead { + margin-top: 16px + } +} + +.featured-header .sharesheet { + text-align: center; + margin-top: 24px; + margin-bottom: 0 +} + +@media only screen and (max-width: 734px) { + .featured-header .sharesheet { + margin-top: 20px + } +} + +.theme-dark .featured-header .category-eyebrow__category, +.theme-dark .featured-header .category-eyebrow__date { + color: #86868b +} + +.tile-item { + position: relative; + list-style: none +} + +.tile-item:first-child.item-1up~.tile-item, +.tile-item:first-child.item-hero~.tile-item, +.tile-item:first-child.item-hero-secondary~.tile-item, +.tile-item:first-child.item-hero-highlight~.tile-item, +.tile-item:first-child.item-hero-highlight-secondary~.tile-item, +.tile-item:first-child.item-super-hero~.tile-item, +.tile-item:first-child.item-super-hero-secondary~.tile-item, +.tile-item:first-child.item-portrait~.tile-item, +.tile-item:first-child.item-portrait-secondary~.tile-item, +.tile-item:first-child.item-hero-reversed~.tile-item { + margin-top: 36px +} + +@media only screen and (max-width: 1068px) { + + .tile-item:first-child.item-1up~.tile-item, + .tile-item:first-child.item-hero~.tile-item, + .tile-item:first-child.item-hero-secondary~.tile-item, + .tile-item:first-child.item-hero-highlight~.tile-item, + .tile-item:first-child.item-hero-highlight-secondary~.tile-item, + .tile-item:first-child.item-super-hero~.tile-item, + .tile-item:first-child.item-super-hero-secondary~.tile-item, + .tile-item:first-child.item-portrait~.tile-item, + .tile-item:first-child.item-portrait-secondary~.tile-item, + .tile-item:first-child.item-hero-reversed~.tile-item { + margin-top: 24px + } +} + +@media only screen and (max-width: 1068px) { + + .tile-item:first-child.item-hero-secondary~ :nth-child(2), + .tile-item:first-child.item-hero-highlight-secondary~ :nth-child(2), + .tile-item:first-child.item-super-hero-secondary~ :nth-child(2), + .tile-item:first-child.item-portrait-secondary~ :nth-child(2) { + margin-top: 0 + } +} + +@media only screen and (max-width: 734px) { + + .tile-item:first-child.item-hero-secondary~ :nth-child(2), + .tile-item:first-child.item-hero-highlight-secondary~ :nth-child(2), + .tile-item:first-child.item-super-hero-secondary~ :nth-child(2), + .tile-item:first-child.item-portrait-secondary~ :nth-child(2) { + margin-top: 24px + } +} + +.tile-item:first-child.item-2up~ :nth-child(2)~.tile-item, +.tile-item:first-child.item-2up-feature~ :nth-child(2)~.tile-item { + margin-top: 36px +} + +@media only screen and (max-width: 1068px) { + + .tile-item:first-child.item-2up~ :nth-child(2)~.tile-item, + .tile-item:first-child.item-2up-feature~ :nth-child(2)~.tile-item { + margin-top: 24px + } +} + +@media only screen and (max-width: 734px) { + + .tile-item:first-child.item-2up~ :nth-child(2), + .tile-item:first-child.item-2up-feature~ :nth-child(2) { + margin-top: 24px + } +} + +.tile-item:first-child.item-3up~ :nth-child(3)~.tile-item { + margin-top: 36px +} + +@media only screen and (max-width: 1068px) { + .tile-item:first-child.item-3up~ :nth-child(3)~.tile-item { + margin-top: 24px + } +} + +@media only screen and (max-width: 1068px) { + .tile-item:first-child.item-3up~ :nth-child(3) { + margin-top: 24px + } +} + +@media only screen and (max-width: 734px) { + .tile-item:first-child.item-3up~ :nth-child(2) { + margin-top: 24px + } +} + + +.item-1up, +.item-hero, +.item-hero-reversed, +.item-hero-secondary, +.item-hero-highlight, +.item-hero-highlight-secondary, +.item-portrait, +.item-portrait-secondary, +.item-super-hero, +.item-super-hero-secondary { + flex-basis: 100% +} + +@media only screen and (max-width: 1068px) { + .item-2up-tertiary { + flex-basis: 100% + } + + .item-1up-secondary, + .item-hero-secondary, + .item-hero-highlight-secondary, + .item-portrait-secondary, + .item-super-hero-secondary { + flex-basis: auto + } +} + +@media only screen and (max-width: 734px) { + + .item-1up, + .item-1up-secondary, + .item-2up, + .item-2up-secondary, + .item-2up-tertiary, + .item-3up, + .item-3up-secondary, + .item-hero, + .item-hero-highlight-secondary, + .item-hero-secondary, + .item-hero-reversed, + .item-portrait-secondary, + .item-super-hero-secondary { + flex-basis: 100% + } +} + +.chiclet { + margin-left: auto; + margin-right: auto; + width: 150px; + height: 150px; + border-radius: 32px; + overflow: hidden +} + +@media only screen and (max-width: 1068px) { + .chiclet { + width: 110px; + height: 110px; + border-radius: 24px + } +} + +@media only screen and (max-width: 734px) { + .chiclet { + width: 104px; + height: 104px; + border-radius: 24px + } +} + +.chiclet img { + width: 100% +} + +.tile.tile { + height: 100% +} + +.tile.tile-1up { + width: 100% +} + +.tile.tile-2up { + flex-direction: column; + width: 472px +} + +.tile.tile-2up .tile__headline { + font-size: 24px; + line-height: 1.16667; + font-weight: 700; + letter-spacing: .009em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 6; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +.tile.tile-2up .tile__headline:lang(ar) { + line-height: 1.33341; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up .tile__headline:lang(ja) { + line-height: 1.25; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up .tile__headline:lang(ko) { + line-height: 1.29167; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up .tile__headline:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .tile.tile-2up .tile__headline { + font-size: 19px; + line-height: 1.21053; + font-weight: 700; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up .tile__headline:lang(ar) { + line-height: 1.36844; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up .tile__headline:lang(ja) { + line-height: 1.26316; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up .tile__headline:lang(ko) { + line-height: 1.31579; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up .tile__headline:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.tile.tile-2up .tile__description { + padding: 32px; + justify-content: space-between; + flex-basis: auto +} + +.tile.tile-2up .tile__media { + flex-shrink: 0 +} + +.tile.tile-2up .image { + background-size: cover +} + +.tile.tile-2up .tile__media, +.tile.tile-2up .tile__image-container { + width: 100%; + height: 266px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 +} + +.tile.tile-2up .tile__category { + margin-bottom: 8px +} + +.tile.tile-2up .tile__timestamp { + margin-top: 12px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-2up { + flex-direction: column; + width: 333px + } + + .tile.tile-2up .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-2up .tile__media { + flex-shrink: 0 + } + + .tile.tile-2up .image { + background-size: cover + } + + .tile.tile-2up .tile__media, + .tile.tile-2up .tile__image-container { + width: 100%; + height: 187px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 + } + + .tile.tile-2up .tile__category { + margin-bottom: 4px + } + + .tile.tile-2up .tile__timestamp { + margin-top: 8px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-2up { + flex-direction: column; + width: 100% + } + + .tile.tile-2up .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-2up .tile__media { + flex-shrink: 0 + } + + .tile.tile-2up .image { + background-size: cover + } + + .tile.tile-2up .tile__media, + .tile.tile-2up .tile__image-container { + width: 100%; + height: auto; + min-height: auto; + flex-basis: auto; + flex-shrink: 1; + padding-top: 56.25%; + height: 0; + position: relative + } + + .tile.tile-2up .tile__media .viewport-image, + .tile.tile-2up .tile__media .image, + .tile.tile-2up .tile__image-container .viewport-image, + .tile.tile-2up .tile__image-container .image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } + + .tile.tile-2up .tile__category { + margin-bottom: 8px + } + + .tile.tile-2up .tile__timestamp { + margin-top: 8px + } +} + +.tile.tile-2up-secondary { + flex-direction: column; + width: 472px +} + +.tile.tile-2up-secondary .tile__headline { + font-size: 24px; + line-height: 1.16667; + font-weight: 700; + letter-spacing: .009em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 6; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +.tile.tile-2up-secondary .tile__headline:lang(ar) { + line-height: 1.33341; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-secondary .tile__headline:lang(ja) { + line-height: 1.25; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-secondary .tile__headline:lang(ko) { + line-height: 1.29167; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-secondary .tile__headline:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-secondary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-secondary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-secondary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-secondary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .tile.tile-2up-secondary .tile__headline { + font-size: 19px; + line-height: 1.21053; + font-weight: 700; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(ar) { + line-height: 1.36844; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(ja) { + line-height: 1.26316; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(ko) { + line-height: 1.31579; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-2up-secondary .tile__headline { + font-size: 17px; + line-height: 1.23536; + font-weight: 700; + letter-spacing: -.022em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(ar) { + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(ja) { + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(ko) { + line-height: 1.35296; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(zh) { + letter-spacing: 0em + } + + .tile.tile-2up-secondary .tile__headline:lang(th) { + line-height: 1.35296; + letter-spacing: 0em; + font-family: "SF Pro TH", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-secondary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.tile.tile-2up-secondary .tile__description { + padding: 32px; + justify-content: space-between; + flex-basis: auto +} + +.tile.tile-2up-secondary .tile__media { + flex-shrink: 0 +} + +.tile.tile-2up-secondary .image { + background-size: cover +} + +.tile.tile-2up-secondary .tile__media, +.tile.tile-2up-secondary .tile__image-container { + width: 100%; + height: 266px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 +} + +.tile.tile-2up-secondary .tile__category { + margin-bottom: 8px +} + +.tile.tile-2up-secondary .tile__timestamp { + margin-top: 12px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-2up-secondary { + flex-direction: column; + width: 333px + } + + .tile.tile-2up-secondary .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-2up-secondary .tile__media { + flex-shrink: 0 + } + + .tile.tile-2up-secondary .image { + background-size: cover + } + + .tile.tile-2up-secondary .tile__media, + .tile.tile-2up-secondary .tile__image-container { + width: 100%; + height: 187px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 + } + + .tile.tile-2up-secondary .tile__category { + margin-bottom: 4px + } + + .tile.tile-2up-secondary .tile__timestamp { + margin-top: 8px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-2up-secondary { + border-radius: revert; + overflow: revert; + z-index: revert; + position: revert; + background-color: transparent; + flex-direction: row; + width: 100% + } + + .tile.tile-2up-secondary .tile__media { + border-radius: 12px; + overflow: hidden; + z-index: 0; + position: relative + } + + .tile.tile-2up-secondary .tile__description { + padding: 0 0 0 16px; + justify-content: center; + flex-basis: 0 + } + + .tile.tile-2up-secondary .tile__media { + flex-shrink: 1 + } + + .tile.tile-2up-secondary .image { + background-size: contain + } + + .tile.tile-2up-secondary .tile__media, + .tile.tile-2up-secondary .tile__image-container { + width: 105px; + height: 105px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 + } + + .tile.tile-2up-secondary .tile__category { + margin-bottom: 4px + } + + .tile.tile-2up-secondary .tile__timestamp { + margin-top: 8px + } +} + +.tile.tile-2up-tertiary { + flex-direction: column; + width: 472px +} + +.tile.tile-2up-tertiary .tile__headline { + font-size: 24px; + line-height: 1.16667; + font-weight: 700; + letter-spacing: .009em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 6; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +.tile.tile-2up-tertiary .tile__headline:lang(ar) { + line-height: 1.33341; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-tertiary .tile__headline:lang(ja) { + line-height: 1.25; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-tertiary .tile__headline:lang(ko) { + line-height: 1.29167; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-tertiary .tile__headline:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-tertiary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-tertiary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-tertiary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-tertiary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .tile.tile-2up-tertiary .tile__headline { + font-size: 21px; + line-height: 1.19048; + font-weight: 700; + letter-spacing: .011em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(ja) { + line-height: 1.2381; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(ko) { + line-height: 1.2858; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(th) { + line-height: 1.381; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(ar) { + line-height: 1.4286; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-2up-tertiary .tile__headline { + font-size: 19px; + line-height: 1.21053; + font-weight: 700; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(ar) { + line-height: 1.36844; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(ja) { + line-height: 1.26316; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(ko) { + line-height: 1.31579; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-tertiary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.tile.tile-2up-tertiary .tile__description { + padding: 32px; + justify-content: space-between; + flex-basis: auto +} + +.tile.tile-2up-tertiary .tile__media { + flex-shrink: 0 +} + +.tile.tile-2up-tertiary .image { + background-size: cover +} + +.tile.tile-2up-tertiary .tile__media, +.tile.tile-2up-tertiary .tile__image-container { + width: 100%; + height: 266px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 +} + +.tile.tile-2up-tertiary .tile__category { + margin-bottom: 8px +} + +.tile.tile-2up-tertiary .tile__timestamp { + margin-top: 12px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-2up-tertiary { + flex-direction: row; + width: 100% + } + + .tile.tile-2up-tertiary .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: 0 + } + + .tile.tile-2up-tertiary .tile__media { + flex-shrink: 1 + } + + .tile.tile-2up-tertiary .image { + background-size: contain + } + + .tile.tile-2up-tertiary .tile__media, + .tile.tile-2up-tertiary .tile__image-container { + width: 100%; + height: auto; + min-height: 255px; + flex-basis: 453px; + flex-shrink: 1 + } + + .tile.tile-2up-tertiary .tile__category { + margin-bottom: 8px + } + + .tile.tile-2up-tertiary .tile__timestamp { + margin-top: 12px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-2up-tertiary { + flex-direction: column; + width: 100% + } + + .tile.tile-2up-tertiary .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-2up-tertiary .tile__media { + flex-shrink: 0 + } + + .tile.tile-2up-tertiary .image { + background-size: cover + } + + .tile.tile-2up-tertiary .tile__media, + .tile.tile-2up-tertiary .tile__image-container { + width: 100%; + height: auto; + min-height: auto; + flex-basis: auto; + flex-shrink: 1; + padding-top: 56.25%; + height: 0; + position: relative + } + + .tile.tile-2up-tertiary .tile__media .viewport-image, + .tile.tile-2up-tertiary .tile__media .image, + .tile.tile-2up-tertiary .tile__image-container .viewport-image, + .tile.tile-2up-tertiary .tile__image-container .image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } + + .tile.tile-2up-tertiary .tile__category { + margin-bottom: 8px + } + + .tile.tile-2up-tertiary .tile__timestamp { + margin-top: 8px + } +} + +.tile.tile-2up-feature { + display: block; + position: relative; + flex-direction: column; + width: 472px +} + +.tile.tile-2up-feature .tile__headline { + font-size: 24px; + line-height: 1.16667; + font-weight: 700; + letter-spacing: .009em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 5; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +.tile.tile-2up-feature .tile__headline:lang(ar) { + line-height: 1.33341; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-feature .tile__headline:lang(ja) { + line-height: 1.25; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-feature .tile__headline:lang(ko) { + line-height: 1.29167; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-feature .tile__headline:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-feature .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-feature .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-feature .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-2up-feature .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .tile.tile-2up-feature .tile__headline { + font-size: 19px; + line-height: 1.21053; + font-weight: 700; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-feature .tile__headline:lang(ar) { + line-height: 1.36844; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-feature .tile__headline:lang(ja) { + line-height: 1.26316; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-feature .tile__headline:lang(ko) { + line-height: 1.31579; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-feature .tile__headline:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-feature .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-feature .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-feature .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-2up-feature .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.tile.tile-2up-feature .tile__gradient { + position: absolute; + bottom: 0; + width: 100%; + z-index: 0 +} + +.tile.tile-2up-feature .tile__gradient::before { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 250%; + z-index: 0; + background: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.77311) 12.83%, rgba(0, 0, 0, 0.72685) 24%, rgba(0, 0, 0, 0.66487) 33.77%, rgba(0, 0, 0, 0.59081) 42.37%, rgba(0, 0, 0, 0.50831) 50.07%, rgba(0, 0, 0, 0.421) 57.13%, rgba(0, 0, 0, 0.33252) 63.78%, rgba(0, 0, 0, 0.24652) 70.3%, rgba(0, 0, 0, 0.16663) 76.92%, rgba(0, 0, 0, 0.09648) 83.91%, rgba(0, 0, 0, 0.03973) 91.52%, rgba(0, 0, 0, 0)); + background-size: 100.1% 100.1% +} + +.tile.tile-2up-feature .tile__gradient.autoplay-controls-wrapper { + z-index: 3 +} + +.tile.tile-2up-feature .tile__description { + width: 100%; + box-sizing: border-box; + position: relative; + z-index: 2 +} + +.tile.tile-2up-feature .tile__description-has-controls { + display: flex; + flex-direction: row +} + +.tile.tile-2up-feature .tile__description-has-controls .tile__description-content { + flex: 1 calc(100% - 44px); + box-sizing: border-box; + padding-right: 16px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-2up-feature .tile__description-has-controls .tile__description-content { + flex: 1 calc(100% - 36px) + } +} + +.tile.tile-2up-feature .tile__description-has-controls .autoplay-controls-container { + flex: 1 44px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-2up-feature .tile__description-has-controls .autoplay-controls-container { + flex: 1 36px + } +} + +.tile.tile-2up-feature .tile__description-content { + display: flex; + flex-direction: column +} + +.tile.tile-2up-feature .tile__headline, +.tile.tile-2up-feature .tile__category, +.tile.tile-2up-feature .tile__timestamp { + color: #fff +} + +.tile.tile-2up-feature .tile__category { + margin-bottom: 12px +} + +.tile.tile-2up-feature .tile__timestamp { + margin-top: 12px +} + +.tile.tile-2up-feature .tile__description { + padding: 0 36px 36px +} + +.tile.tile-2up-feature .tile__media { + width: 980px; + height: 551px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-2up-feature .tile__category { + margin-bottom: 8px + } + + .tile.tile-2up-feature .tile__timestamp { + margin-top: 8px + } + + .tile.tile-2up-feature .tile__description { + padding: 0 24px 24px + } + + .tile.tile-2up-feature .tile__media { + width: 692px; + height: 389px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-2up-feature .tile__category { + margin-bottom: 4px + } + + .tile.tile-2up-feature .tile__timestamp { + margin-top: 8px + } + + .tile.tile-2up-feature .tile__description { + padding: 0 24px 24px + } + + .tile.tile-2up-feature .tile__media { + width: 100%; + padding-top: 125%; + height: 0; + position: relative + } + + .tile.tile-2up-feature .tile__media .viewport-image, + .tile.tile-2up-feature .tile__media .image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } +} + +.tile.tile-2up-feature .tile__description { + padding: 36px; + justify-content: space-between; + flex-basis: auto +} + +.tile.tile-2up-feature .tile__media { + flex-shrink: 0 +} + +.tile.tile-2up-feature .image { + background-size: cover +} + +.tile.tile-2up-feature .tile__media, +.tile.tile-2up-feature .tile__image-container { + width: 100%; + height: 472px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 +} + +.tile.tile-2up-feature .tile__category { + margin-bottom: 4px +} + +.tile.tile-2up-feature .tile__timestamp { + margin-top: 12px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-2up-feature { + flex-direction: column; + width: 334px + } + + .tile.tile-2up-feature .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-2up-feature .tile__media { + flex-shrink: 0 + } + + .tile.tile-2up-feature .image { + background-size: cover + } + + .tile.tile-2up-feature .tile__media, + .tile.tile-2up-feature .tile__image-container { + width: 100%; + height: 334px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 + } + + .tile.tile-2up-feature .tile__category { + margin-bottom: 4px + } + + .tile.tile-2up-feature .tile__timestamp { + margin-top: 8px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-2up-feature { + flex-direction: column; + width: 100% + } + + .tile.tile-2up-feature .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-2up-feature .tile__media { + flex-shrink: 0 + } + + .tile.tile-2up-feature .image { + background-size: cover + } + + .tile.tile-2up-feature .tile__media, + .tile.tile-2up-feature .tile__image-container { + width: 100%; + height: auto; + min-height: auto; + flex-basis: auto; + flex-shrink: 1; + padding-top: 56.25%; + height: 0; + position: relative + } + + .tile.tile-2up-feature .tile__media .viewport-image, + .tile.tile-2up-feature .tile__media .image, + .tile.tile-2up-feature .tile__image-container .viewport-image, + .tile.tile-2up-feature .tile__image-container .image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } + + .tile.tile-2up-feature .tile__category { + margin-bottom: 8px + } + + .tile.tile-2up-feature .tile__timestamp { + margin-top: 8px + } + + .tile.tile-2up-feature .tile__gradient { + position: relative + } + + .tile.tile-2up-feature .tile__gradient::before { + content: none + } + + .tile.tile-2up-feature .viewport-image { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0 + } +} + +.tile.tile-3up { + flex-direction: column; + width: 303px +} + +.tile.tile-3up .tile__headline { + font-size: 19px; + line-height: 1.21053; + font-weight: 700; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 6; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +.tile.tile-3up .tile__headline:lang(ar) { + line-height: 1.36844; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up .tile__headline:lang(ja) { + line-height: 1.26316; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up .tile__headline:lang(ko) { + line-height: 1.31579; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up .tile__headline:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto +} + +.tile.tile-3up .tile__media { + flex-shrink: 0 +} + +.tile.tile-3up .image { + background-size: cover +} + +.tile.tile-3up .tile__media, +.tile.tile-3up .tile__image-container { + width: 100%; + height: 170px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 +} + +.tile.tile-3up .tile__category { + margin-bottom: 4px +} + +.tile.tile-3up .tile__timestamp { + margin-top: 8px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-3up { + flex-direction: column; + width: 333px + } + + .tile.tile-3up .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-3up .tile__media { + flex-shrink: 0 + } + + .tile.tile-3up .image { + background-size: cover + } + + .tile.tile-3up .tile__media, + .tile.tile-3up .tile__image-container { + width: 100%; + height: 187px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 + } + + .tile.tile-3up .tile__category { + margin-bottom: 4px + } + + .tile.tile-3up .tile__timestamp { + margin-top: 8px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-3up { + flex-direction: column; + width: 100% + } + + .tile.tile-3up .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-3up .tile__media { + flex-shrink: 0 + } + + .tile.tile-3up .image { + background-size: cover + } + + .tile.tile-3up .tile__media, + .tile.tile-3up .tile__image-container { + width: 100%; + height: auto; + min-height: auto; + flex-basis: auto; + flex-shrink: 1; + padding-top: 56.25%; + height: 0; + position: relative + } + + .tile.tile-3up .tile__media .viewport-image, + .tile.tile-3up .tile__media .image, + .tile.tile-3up .tile__image-container .viewport-image, + .tile.tile-3up .tile__image-container .image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } + + .tile.tile-3up .tile__category { + margin-bottom: 8px + } + + .tile.tile-3up .tile__timestamp { + margin-top: 8px + } +} + +.tile.tile-3up-secondary { + flex-direction: column; + width: 303px +} + +.tile.tile-3up-secondary .tile__headline { + font-size: 19px; + line-height: 1.21053; + font-weight: 700; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 6; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +.tile.tile-3up-secondary .tile__headline:lang(ar) { + line-height: 1.36844; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up-secondary .tile__headline:lang(ja) { + line-height: 1.26316; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up-secondary .tile__headline:lang(ko) { + line-height: 1.31579; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up-secondary .tile__headline:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up-secondary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up-secondary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up-secondary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-3up-secondary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 734px) { + .tile.tile-3up-secondary .tile__headline { + font-size: 17px; + line-height: 1.23536; + font-weight: 700; + letter-spacing: -.022em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-3up-secondary .tile__headline:lang(ar) { + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-3up-secondary .tile__headline:lang(ja) { + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-3up-secondary .tile__headline:lang(ko) { + line-height: 1.35296; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-3up-secondary .tile__headline:lang(zh) { + letter-spacing: 0em + } + + .tile.tile-3up-secondary .tile__headline:lang(th) { + line-height: 1.35296; + letter-spacing: 0em; + font-family: "SF Pro TH", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-3up-secondary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-3up-secondary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-3up-secondary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-3up-secondary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.tile.tile-3up-secondary .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto +} + +.tile.tile-3up-secondary .tile__media { + flex-shrink: 0 +} + +.tile.tile-3up-secondary .image { + background-size: cover +} + +.tile.tile-3up-secondary .tile__media, +.tile.tile-3up-secondary .tile__image-container { + width: 100%; + height: 170px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 +} + +.tile.tile-3up-secondary .tile__category { + margin-bottom: 4px +} + +.tile.tile-3up-secondary .tile__timestamp { + margin-top: 8px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-3up-secondary { + flex-direction: column; + width: 333px + } + + .tile.tile-3up-secondary .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-3up-secondary .tile__media { + flex-shrink: 0 + } + + .tile.tile-3up-secondary .image { + background-size: cover + } + + .tile.tile-3up-secondary .tile__media, + .tile.tile-3up-secondary .tile__image-container { + width: 100%; + height: 187px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 + } + + .tile.tile-3up-secondary .tile__category { + margin-bottom: 4px + } + + .tile.tile-3up-secondary .tile__timestamp { + margin-top: 8px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-3up-secondary { + border-radius: revert; + overflow: revert; + z-index: revert; + position: revert; + background-color: transparent; + flex-direction: row; + width: 100% + } + + .tile.tile-3up-secondary .tile__media { + border-radius: 12px; + overflow: hidden; + z-index: 0; + position: relative + } + + .tile.tile-3up-secondary .tile__description { + padding: 0 0 0 16px; + justify-content: center; + flex-basis: 0 + } + + .tile.tile-3up-secondary .tile__media { + flex-shrink: 1 + } + + .tile.tile-3up-secondary .image { + background-size: contain + } + + .tile.tile-3up-secondary .tile__media, + .tile.tile-3up-secondary .tile__image-container { + width: 105px; + height: 105px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 + } + + .tile.tile-3up-secondary .tile__category { + margin-bottom: 4px + } + + .tile.tile-3up-secondary .tile__timestamp { + margin-top: 8px + } +} + +.tile.tile-hero { + flex-direction: row; + width: 100% +} + +.tile.tile-hero .tile__headline { + font-size: 32px; + line-height: 1.125; + font-weight: 700; + letter-spacing: .004em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 6; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +.tile.tile-hero .tile__headline:lang(ar) { + line-height: 1.34375; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero .tile__headline:lang(ja) { + line-height: 1.21875; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero .tile__headline:lang(ko) { + line-height: 1.21875; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero .tile__headline:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero .tile__headline { + font-size: 21px; + line-height: 1.19048; + font-weight: 700; + letter-spacing: .011em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(ja) { + line-height: 1.2381; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(ko) { + line-height: 1.2858; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(th) { + line-height: 1.381; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(ar) { + line-height: 1.4286; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-hero .tile__headline { + font-size: 19px; + line-height: 1.21053; + font-weight: 700; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(ar) { + line-height: 1.36844; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(ja) { + line-height: 1.26316; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(ko) { + line-height: 1.31579; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.tile.tile-hero .tile__description { + padding: 32px; + justify-content: space-between; + flex-basis: 0 +} + +.tile.tile-hero .tile__media { + flex-shrink: 1 +} + +.tile.tile-hero .image { + background-size: contain +} + +.tile.tile-hero .tile__media, +.tile.tile-hero .tile__image-container { + width: 100%; + height: auto; + min-height: 362px; + flex-basis: 643px; + flex-shrink: 1 +} + +.tile.tile-hero .tile__category { + margin-bottom: 8px +} + +.tile.tile-hero .tile__timestamp { + margin-top: 12px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero { + flex-direction: row; + width: 100% + } + + .tile.tile-hero .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: 0 + } + + .tile.tile-hero .tile__media { + flex-shrink: 1 + } + + .tile.tile-hero .image { + background-size: contain + } + + .tile.tile-hero .tile__media, + .tile.tile-hero .tile__image-container { + width: 100%; + height: auto; + min-height: 255px; + flex-basis: 453px; + flex-shrink: 1 + } + + .tile.tile-hero .tile__category { + margin-bottom: 8px + } + + .tile.tile-hero .tile__timestamp { + margin-top: 12px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-hero { + flex-direction: column; + width: 100% + } + + .tile.tile-hero .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-hero .tile__media { + flex-shrink: 0 + } + + .tile.tile-hero .image { + background-size: cover + } + + .tile.tile-hero .tile__media, + .tile.tile-hero .tile__image-container { + width: 100%; + height: auto; + min-height: auto; + flex-basis: auto; + flex-shrink: 1; + padding-top: 56.25%; + height: 0; + position: relative + } + + .tile.tile-hero .tile__media .viewport-image, + .tile.tile-hero .tile__media .image, + .tile.tile-hero .tile__image-container .viewport-image, + .tile.tile-hero .tile__image-container .image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } + + .tile.tile-hero .tile__category { + margin-bottom: 8px + } + + .tile.tile-hero .tile__timestamp { + margin-top: 8px + } +} + +.tile.tile-hero .tile__headline:lang(ar) { + -webkit-line-clamp: 5; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +@media only screen and (max-width: 734px) { + .tile.tile-hero .tile__headline:lang(ar) { + -webkit-line-clamp: 6; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden + } +} + +.tile.tile-hero:lang(ar) .image { + background-size: cover +} + +.tile.tile-hero-reversed { + flex-direction: row-reverse; + width: 100% +} + +.tile.tile-hero-reversed .tile__headline { + font-size: 32px; + line-height: 1.125; + font-weight: 700; + letter-spacing: .004em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 6; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +.tile.tile-hero-reversed .tile__headline:lang(ar) { + line-height: 1.34375; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-reversed .tile__headline:lang(ja) { + line-height: 1.21875; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-reversed .tile__headline:lang(ko) { + line-height: 1.21875; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-reversed .tile__headline:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-reversed .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-reversed .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-reversed .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-reversed .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-reversed .tile__headline { + font-size: 21px; + line-height: 1.19048; + font-weight: 700; + letter-spacing: .011em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(ja) { + line-height: 1.2381; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(ko) { + line-height: 1.2858; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(th) { + line-height: 1.381; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(ar) { + line-height: 1.4286; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-hero-reversed .tile__headline { + font-size: 19px; + line-height: 1.21053; + font-weight: 700; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(ar) { + line-height: 1.36844; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(ja) { + line-height: 1.26316; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(ko) { + line-height: 1.31579; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-reversed .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.tile.tile-hero-reversed .tile__description { + padding: 32px; + justify-content: space-between; + flex-basis: 0 +} + +.tile.tile-hero-reversed .tile__media { + flex-shrink: 1 +} + +.tile.tile-hero-reversed .image { + background-size: contain +} + +.tile.tile-hero-reversed .tile__media, +.tile.tile-hero-reversed .tile__image-container { + width: 100%; + height: auto; + min-height: 362px; + flex-basis: 643px; + flex-shrink: 1 +} + +.tile.tile-hero-reversed .tile__category { + margin-bottom: 8px +} + +.tile.tile-hero-reversed .tile__timestamp { + margin-top: 12px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-reversed { + flex-direction: row-reverse; + width: 100% + } + + .tile.tile-hero-reversed .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: 0 + } + + .tile.tile-hero-reversed .tile__media { + flex-shrink: 1 + } + + .tile.tile-hero-reversed .image { + background-size: contain + } + + .tile.tile-hero-reversed .tile__media, + .tile.tile-hero-reversed .tile__image-container { + width: 100%; + height: auto; + min-height: 255px; + flex-basis: 453px; + flex-shrink: 1 + } + + .tile.tile-hero-reversed .tile__category { + margin-bottom: 8px + } + + .tile.tile-hero-reversed .tile__timestamp { + margin-top: 12px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-hero-reversed { + flex-direction: column; + width: 100% + } + + .tile.tile-hero-reversed .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-hero-reversed .tile__media { + flex-shrink: 0 + } + + .tile.tile-hero-reversed .image { + background-size: cover + } + + .tile.tile-hero-reversed .tile__media, + .tile.tile-hero-reversed .tile__image-container { + width: 100%; + height: auto; + min-height: auto; + flex-basis: auto; + flex-shrink: 1; + padding-top: 56.25%; + height: 0; + position: relative + } + + .tile.tile-hero-reversed .tile__media .viewport-image, + .tile.tile-hero-reversed .tile__media .image, + .tile.tile-hero-reversed .tile__image-container .viewport-image, + .tile.tile-hero-reversed .tile__image-container .image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } + + .tile.tile-hero-reversed .tile__category { + margin-bottom: 8px + } + + .tile.tile-hero-reversed .tile__timestamp { + margin-top: 8px + } +} + +.tile.tile-hero-reversed:lang(ar) .image { + background-size: cover +} + +.tile.tile-hero-highlight .tile__headline, +.tile.tile-hero-highlight-secondary .tile__headline { + font-size: 40px; + line-height: 1.1; + font-weight: 700; + letter-spacing: 0em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 4; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +.tile.tile-hero-highlight .tile__headline:lang(ar), +.tile.tile-hero-highlight-secondary .tile__headline:lang(ar) { + line-height: 1.3; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight .tile__headline:lang(ja), +.tile.tile-hero-highlight-secondary .tile__headline:lang(ja) { + line-height: 1.175; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight .tile__headline:lang(ko), +.tile.tile-hero-highlight-secondary .tile__headline:lang(ko) { + line-height: 1.2; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight .tile__headline:lang(th), +.tile.tile-hero-highlight-secondary .tile__headline:lang(th) { + line-height: 1.35; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight .tile__headline:lang(zh-CN), +.tile.tile-hero-highlight-secondary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight .tile__headline:lang(zh-HK), +.tile.tile-hero-highlight-secondary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight .tile__headline:lang(zh-MO), +.tile.tile-hero-highlight-secondary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight .tile__headline:lang(zh-TW), +.tile.tile-hero-highlight-secondary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + + .tile.tile-hero-highlight .tile__headline, + .tile.tile-hero-highlight-secondary .tile__headline { + font-size: 28px; + line-height: 1.14286; + font-weight: 700; + letter-spacing: .007em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(ko), + .tile.tile-hero-highlight-secondary .tile__headline:lang(ko) { + line-height: 1.25; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(th), + .tile.tile-hero-highlight-secondary .tile__headline:lang(th) { + line-height: 1.39286; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(ar), + .tile.tile-hero-highlight-secondary .tile__headline:lang(ar) { + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(ja), + .tile.tile-hero-highlight-secondary .tile__headline:lang(ja) { + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(zh-CN), + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(zh-HK), + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(zh-MO), + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(zh-TW), + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 734px) { + + .tile.tile-hero-highlight .tile__headline, + .tile.tile-hero-highlight-secondary .tile__headline { + font-size: 24px; + line-height: 1.16667; + font-weight: 700; + letter-spacing: .009em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(ar), + .tile.tile-hero-highlight-secondary .tile__headline:lang(ar) { + line-height: 1.33341; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(ja), + .tile.tile-hero-highlight-secondary .tile__headline:lang(ja) { + line-height: 1.25; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(ko), + .tile.tile-hero-highlight-secondary .tile__headline:lang(ko) { + line-height: 1.29167; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(th), + .tile.tile-hero-highlight-secondary .tile__headline:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(zh-CN), + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(zh-HK), + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(zh-MO), + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight .tile__headline:lang(zh-TW), + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + + + +html.js .tile.tile-hero-highlight[data-progressive-load], +html.js .tile.tile-hero-highlight-secondary[data-progressive-load] { + opacity: 0 +} + +html.js .tile.tile-hero-highlight.large-load, +html.js .tile.tile-hero-highlight-secondary.large-load { + opacity: 0; + transition: none +} + +html.js .tile.tile-hero-highlight.large-loaded, +html.js .tile.tile-hero-highlight-secondary.large-loaded { + opacity: 1; + transition: opacity 1s cubic-bezier(0.4, 0, 0.25, 1) 0ms +} + +@media only screen and (max-width: 1068px) { + + html.js .tile.tile-hero-highlight.medium-load, + html.js .tile.tile-hero-highlight-secondary.medium-load { + opacity: 0; + transition: none + } + + html.js .tile.tile-hero-highlight.medium-loaded, + html.js .tile.tile-hero-highlight-secondary.medium-loaded { + opacity: 1; + transition: opacity 1s cubic-bezier(0.4, 0, 0.25, 1) 0ms + } +} + +@media only screen and (max-width: 734px) { + + html.js .tile.tile-hero-highlight.small-load, + html.js .tile.tile-hero-highlight-secondary.small-load { + opacity: 0; + transition: none + } + + html.js .tile.tile-hero-highlight.small-loaded, + html.js .tile.tile-hero-highlight-secondary.small-loaded { + opacity: 1; + transition: opacity 1s cubic-bezier(0.4, 0, 0.25, 1) 0ms + } +} + +.tile.tile-hero-highlight { + display: block; + position: relative +} + +.tile.tile-hero-highlight .tile__gradient { + position: absolute; + bottom: 0; + width: 100%; + z-index: 0 +} + +.tile.tile-hero-highlight .tile__gradient::before { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 250%; + z-index: 0; + background: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.77311) 12.83%, rgba(0, 0, 0, 0.72685) 24%, rgba(0, 0, 0, 0.66487) 33.77%, rgba(0, 0, 0, 0.59081) 42.37%, rgba(0, 0, 0, 0.50831) 50.07%, rgba(0, 0, 0, 0.421) 57.13%, rgba(0, 0, 0, 0.33252) 63.78%, rgba(0, 0, 0, 0.24652) 70.3%, rgba(0, 0, 0, 0.16663) 76.92%, rgba(0, 0, 0, 0.09648) 83.91%, rgba(0, 0, 0, 0.03973) 91.52%, rgba(0, 0, 0, 0)); + background-size: 100.1% 100.1% +} + +.tile.tile-hero-highlight .tile__gradient.autoplay-controls-wrapper { + z-index: 3 +} + +.tile.tile-hero-highlight .tile__description { + width: 100%; + box-sizing: border-box; + position: relative; + z-index: 2 +} + +.tile.tile-hero-highlight .tile__description-has-controls { + display: flex; + flex-direction: row +} + +.tile.tile-hero-highlight .tile__description-has-controls .tile__description-content { + flex: 1 calc(100% - 44px); + box-sizing: border-box; + padding-right: 16px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-highlight .tile__description-has-controls .tile__description-content { + flex: 1 calc(100% - 36px) + } +} + +.tile.tile-hero-highlight .tile__description-has-controls .autoplay-controls-container { + flex: 1 44px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-highlight .tile__description-has-controls .autoplay-controls-container { + flex: 1 36px + } +} + +.tile.tile-hero-highlight .tile__description-content { + display: flex; + flex-direction: column +} + +.tile.tile-hero-highlight .tile__headline, +.tile.tile-hero-highlight .tile__category, +.tile.tile-hero-highlight .tile__timestamp { + color: #fff +} + +.tile.tile-hero-highlight .tile__category { + margin-bottom: 12px +} + +.tile.tile-hero-highlight .tile__timestamp { + margin-top: 12px +} + +.tile.tile-hero-highlight .tile__description { + padding: 0 36px 36px +} + +.tile.tile-hero-highlight .tile__media { + width: 980px; + height: 551px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-highlight .tile__category { + margin-bottom: 8px + } + + .tile.tile-hero-highlight .tile__timestamp { + margin-top: 8px + } + + .tile.tile-hero-highlight .tile__description { + padding: 0 24px 24px + } + + .tile.tile-hero-highlight .tile__media { + width: 692px; + height: 389px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-hero-highlight .tile__category { + margin-bottom: 4px + } + + .tile.tile-hero-highlight .tile__timestamp { + margin-top: 8px + } + + .tile.tile-hero-highlight .tile__description { + padding: 0 24px 24px + } + + .tile.tile-hero-highlight .tile__media { + width: 100%; + padding-top: 125%; + height: 0; + position: relative + } + + .tile.tile-hero-highlight .tile__media .viewport-image, + .tile.tile-hero-highlight .tile__media .image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } +} + +@media only screen and (min-width: 1069px) { + .tile.tile-hero-highlight-secondary { + display: block; + position: relative + } + + .tile.tile-hero-highlight-secondary .tile__gradient { + position: absolute; + bottom: 0; + width: 100%; + z-index: 0 + } + + .tile.tile-hero-highlight-secondary .tile__gradient::before { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 250%; + z-index: 0; + background: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.77311) 12.83%, rgba(0, 0, 0, 0.72685) 24%, rgba(0, 0, 0, 0.66487) 33.77%, rgba(0, 0, 0, 0.59081) 42.37%, rgba(0, 0, 0, 0.50831) 50.07%, rgba(0, 0, 0, 0.421) 57.13%, rgba(0, 0, 0, 0.33252) 63.78%, rgba(0, 0, 0, 0.24652) 70.3%, rgba(0, 0, 0, 0.16663) 76.92%, rgba(0, 0, 0, 0.09648) 83.91%, rgba(0, 0, 0, 0.03973) 91.52%, rgba(0, 0, 0, 0)); + background-size: 100.1% 100.1% + } + + .tile.tile-hero-highlight-secondary .tile__gradient.autoplay-controls-wrapper { + z-index: 3 + } + + .tile.tile-hero-highlight-secondary .tile__description { + width: 100%; + box-sizing: border-box; + position: relative; + z-index: 2 + } + + .tile.tile-hero-highlight-secondary .tile__description-has-controls { + display: flex; + flex-direction: row + } + + .tile.tile-hero-highlight-secondary .tile__description-has-controls .tile__description-content { + flex: 1 calc(100% - 44px); + box-sizing: border-box; + padding-right: 16px + } +} + +@media only screen and (min-width: 1069px) and (max-width: 1068px) { + .tile.tile-hero-highlight-secondary .tile__description-has-controls .tile__description-content { + flex: 1 calc(100% - 36px) + } +} + +@media only screen and (min-width: 1069px) { + .tile.tile-hero-highlight-secondary .tile__description-has-controls .autoplay-controls-container { + flex: 1 44px + } +} + +@media only screen and (min-width: 1069px) and (max-width: 1068px) { + .tile.tile-hero-highlight-secondary .tile__description-has-controls .autoplay-controls-container { + flex: 1 36px + } +} + +@media only screen and (min-width: 1069px) { + .tile.tile-hero-highlight-secondary .tile__description-content { + display: flex; + flex-direction: column + } + + .tile.tile-hero-highlight-secondary .tile__headline, + .tile.tile-hero-highlight-secondary .tile__category, + .tile.tile-hero-highlight-secondary .tile__timestamp { + color: #fff + } + + .tile.tile-hero-highlight-secondary .tile__category { + margin-bottom: 12px + } + + .tile.tile-hero-highlight-secondary .tile__timestamp { + margin-top: 12px + } + + .tile.tile-hero-highlight-secondary .tile__description { + padding: 0 36px 36px + } + + .tile.tile-hero-highlight-secondary .tile__media { + width: 980px; + height: 551px + } +} + +@media only screen and (min-width: 1069px) and (max-width: 1068px) { + .tile.tile-hero-highlight-secondary .tile__category { + margin-bottom: 8px + } + + .tile.tile-hero-highlight-secondary .tile__timestamp { + margin-top: 8px + } + + .tile.tile-hero-highlight-secondary .tile__description { + padding: 0 24px 24px + } + + .tile.tile-hero-highlight-secondary .tile__media { + width: 692px; + height: 389px + } +} + +@media only screen and (min-width: 1069px) and (max-width: 734px) { + .tile.tile-hero-highlight-secondary .tile__category { + margin-bottom: 4px + } + + .tile.tile-hero-highlight-secondary .tile__timestamp { + margin-top: 8px + } + + .tile.tile-hero-highlight-secondary .tile__description { + padding: 0 24px 24px + } + + .tile.tile-hero-highlight-secondary .tile__media { + width: 100%; + padding-top: 125%; + height: 0; + position: relative + } + + .tile.tile-hero-highlight-secondary .tile__media .viewport-image, + .tile.tile-hero-highlight-secondary .tile__media .image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-highlight-secondary { + flex-direction: column; + width: 333px + } + + .tile.tile-hero-highlight-secondary .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-hero-highlight-secondary .tile__media { + flex-shrink: 0 + } + + .tile.tile-hero-highlight-secondary .image { + background-size: cover + } + + .tile.tile-hero-highlight-secondary .tile__media, + .tile.tile-hero-highlight-secondary .tile__image-container { + width: 100%; + height: 187px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 + } + + .tile.tile-hero-highlight-secondary .tile__category { + margin-bottom: 4px + } + + .tile.tile-hero-highlight-secondary .tile__timestamp { + margin-top: 8px + } + + .tile.tile-hero-highlight-secondary .tile__headline { + font-size: 24px; + line-height: 1.16667; + font-weight: 700; + letter-spacing: .009em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 5; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(ar) { + line-height: 1.33341; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(ja) { + line-height: 1.25; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(ko) { + line-height: 1.29167; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 1068px) and (max-width: 1068px) { + .tile.tile-hero-highlight-secondary .tile__headline { + font-size: 19px; + line-height: 1.21053; + font-weight: 700; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(ar) { + line-height: 1.36844; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(ja) { + line-height: 1.26316; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(ko) { + line-height: 1.31579; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-secondary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-highlight-secondary .autoplay-controls-container { + position: absolute; + top: calc(187px - (36px + 16px)) + } + + .tile.tile-hero-highlight-secondary .tile__gradient { + flex: 1 + } + + .tile.tile-hero-highlight-secondary .tile__description { + box-sizing: border-box; + height: 100% + } + + .tile.tile-hero-highlight-secondary .tile__description-content { + display: flex; + flex-direction: column; + height: 100%; + justify-content: space-between + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-hero-highlight-secondary { + display: block; + position: relative; + width: 100% + } + + .tile.tile-hero-highlight-secondary .tile__gradient { + position: absolute; + bottom: 0; + width: 100%; + z-index: 0 + } + + .tile.tile-hero-highlight-secondary .tile__gradient::before { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 250%; + z-index: 0; + background: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.77311) 12.83%, rgba(0, 0, 0, 0.72685) 24%, rgba(0, 0, 0, 0.66487) 33.77%, rgba(0, 0, 0, 0.59081) 42.37%, rgba(0, 0, 0, 0.50831) 50.07%, rgba(0, 0, 0, 0.421) 57.13%, rgba(0, 0, 0, 0.33252) 63.78%, rgba(0, 0, 0, 0.24652) 70.3%, rgba(0, 0, 0, 0.16663) 76.92%, rgba(0, 0, 0, 0.09648) 83.91%, rgba(0, 0, 0, 0.03973) 91.52%, rgba(0, 0, 0, 0)); + background-size: 100.1% 100.1% + } + + .tile.tile-hero-highlight-secondary .tile__gradient.autoplay-controls-wrapper { + z-index: 3 + } + + .tile.tile-hero-highlight-secondary .tile__description { + width: 100%; + box-sizing: border-box; + position: relative; + z-index: 2 + } + + .tile.tile-hero-highlight-secondary .tile__description-has-controls { + display: flex; + flex-direction: row + } + + .tile.tile-hero-highlight-secondary .tile__description-has-controls .tile__description-content { + flex: 1 calc(100% - 44px); + box-sizing: border-box; + padding-right: 16px + } +} + +@media only screen and (max-width: 734px) and (max-width: 1068px) { + .tile.tile-hero-highlight-secondary .tile__description-has-controls .tile__description-content { + flex: 1 calc(100% - 36px) + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-hero-highlight-secondary .tile__description-has-controls .autoplay-controls-container { + flex: 1 44px + } +} + +@media only screen and (max-width: 734px) and (max-width: 1068px) { + .tile.tile-hero-highlight-secondary .tile__description-has-controls .autoplay-controls-container { + flex: 1 36px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-hero-highlight-secondary .tile__description-content { + display: flex; + flex-direction: column + } + + .tile.tile-hero-highlight-secondary .tile__headline, + .tile.tile-hero-highlight-secondary .tile__category, + .tile.tile-hero-highlight-secondary .tile__timestamp { + color: #fff + } + + .tile.tile-hero-highlight-secondary .tile__category { + margin-bottom: 12px + } + + .tile.tile-hero-highlight-secondary .tile__timestamp { + margin-top: 12px + } + + .tile.tile-hero-highlight-secondary .tile__description { + padding: 0 36px 36px + } + + .tile.tile-hero-highlight-secondary .tile__media { + width: 980px; + height: 551px + } +} + +@media only screen and (max-width: 734px) and (max-width: 1068px) { + .tile.tile-hero-highlight-secondary .tile__category { + margin-bottom: 8px + } + + .tile.tile-hero-highlight-secondary .tile__timestamp { + margin-top: 8px + } + + .tile.tile-hero-highlight-secondary .tile__description { + padding: 0 24px 24px + } + + .tile.tile-hero-highlight-secondary .tile__media { + width: 692px; + height: 389px + } +} + +@media only screen and (max-width: 734px) and (max-width: 734px) { + .tile.tile-hero-highlight-secondary .tile__category { + margin-bottom: 4px + } + + .tile.tile-hero-highlight-secondary .tile__timestamp { + margin-top: 8px + } + + .tile.tile-hero-highlight-secondary .tile__description { + padding: 0 24px 24px + } + + .tile.tile-hero-highlight-secondary .tile__media { + width: 100%; + padding-top: 125%; + height: 0; + position: relative + } + + .tile.tile-hero-highlight-secondary .tile__media .viewport-image, + .tile.tile-hero-highlight-secondary .tile__media .image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } +} + +.tile.tile-hero-highlight-feature { + display: block; + position: relative; + display: flex +} + +.tile.tile-hero-highlight-feature .tile__headline { + font-size: 40px; + line-height: 1.1; + font-weight: 700; + letter-spacing: 0em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 4; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +.tile.tile-hero-highlight-feature .tile__headline:lang(ar) { + line-height: 1.3; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight-feature .tile__headline:lang(ja) { + line-height: 1.175; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight-feature .tile__headline:lang(ko) { + line-height: 1.2; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight-feature .tile__headline:lang(th) { + line-height: 1.35; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight-feature .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight-feature .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight-feature .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-highlight-feature .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-highlight-feature .tile__headline { + font-size: 28px; + line-height: 1.14286; + font-weight: 700; + letter-spacing: .007em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(ko) { + line-height: 1.25; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(th) { + line-height: 1.39286; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(ar) { + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(ja) { + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-hero-highlight-feature .tile__headline { + font-size: 24px; + line-height: 1.16667; + font-weight: 700; + letter-spacing: .009em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(ar) { + line-height: 1.33341; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(ja) { + line-height: 1.25; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(ko) { + line-height: 1.29167; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-highlight-feature .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.tile.tile-hero-highlight-feature .tile__gradient { + position: absolute; + bottom: 0; + width: 100%; + z-index: 0 +} + +.tile.tile-hero-highlight-feature .tile__gradient::before { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 250%; + z-index: 0; + background: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.77311) 12.83%, rgba(0, 0, 0, 0.72685) 24%, rgba(0, 0, 0, 0.66487) 33.77%, rgba(0, 0, 0, 0.59081) 42.37%, rgba(0, 0, 0, 0.50831) 50.07%, rgba(0, 0, 0, 0.421) 57.13%, rgba(0, 0, 0, 0.33252) 63.78%, rgba(0, 0, 0, 0.24652) 70.3%, rgba(0, 0, 0, 0.16663) 76.92%, rgba(0, 0, 0, 0.09648) 83.91%, rgba(0, 0, 0, 0.03973) 91.52%, rgba(0, 0, 0, 0)); + background-size: 100.1% 100.1% +} + +.tile.tile-hero-highlight-feature .tile__gradient.autoplay-controls-wrapper { + z-index: 3 +} + +.tile.tile-hero-highlight-feature .tile__description { + width: 100%; + box-sizing: border-box; + position: relative; + z-index: 2 +} + +.tile.tile-hero-highlight-feature .tile__description-has-controls { + display: flex; + flex-direction: row +} + +.tile.tile-hero-highlight-feature .tile__description-has-controls .tile__description-content { + flex: 1 calc(100% - 44px); + box-sizing: border-box; + padding-right: 16px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-highlight-feature .tile__description-has-controls .tile__description-content { + flex: 1 calc(100% - 36px) + } +} + +.tile.tile-hero-highlight-feature .tile__description-has-controls .autoplay-controls-container { + flex: 1 44px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-highlight-feature .tile__description-has-controls .autoplay-controls-container { + flex: 1 36px + } +} + +.tile.tile-hero-highlight-feature .tile__description-content { + display: flex; + flex-direction: column +} + +.tile.tile-hero-highlight-feature .tile__headline, +.tile.tile-hero-highlight-feature .tile__category, +.tile.tile-hero-highlight-feature .tile__timestamp { + color: #fff +} + +.tile.tile-hero-highlight-feature .tile__category { + margin-bottom: 12px +} + +.tile.tile-hero-highlight-feature .tile__timestamp { + margin-top: 12px +} + +.tile.tile-hero-highlight-feature .tile__description { + padding: 0 36px 36px +} + +.tile.tile-hero-highlight-feature .tile__media { + width: 980px; + height: 551px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-highlight-feature .tile__category { + margin-bottom: 8px + } + + .tile.tile-hero-highlight-feature .tile__timestamp { + margin-top: 8px + } + + .tile.tile-hero-highlight-feature .tile__description { + padding: 0 24px 24px + } + + .tile.tile-hero-highlight-feature .tile__media { + width: 692px; + height: 389px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-hero-highlight-feature .tile__category { + margin-bottom: 4px + } + + .tile.tile-hero-highlight-feature .tile__timestamp { + margin-top: 8px + } + + .tile.tile-hero-highlight-feature .tile__description { + padding: 0 24px 24px + } + + .tile.tile-hero-highlight-feature .tile__media { + width: 100%; + padding-top: 125%; + height: 0; + position: relative + } + + .tile.tile-hero-highlight-feature .tile__media .viewport-image, + .tile.tile-hero-highlight-feature .tile__media .image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } +} + +.tile.tile-hero-secondary { + flex-direction: row; + width: 100% +} + +.tile.tile-hero-secondary .tile__headline { + font-size: 32px; + line-height: 1.125; + font-weight: 700; + letter-spacing: .004em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 6; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +.tile.tile-hero-secondary .tile__headline:lang(ar) { + line-height: 1.34375; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-secondary .tile__headline:lang(ja) { + line-height: 1.21875; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-secondary .tile__headline:lang(ko) { + line-height: 1.21875; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-secondary .tile__headline:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-secondary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-secondary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-secondary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-hero-secondary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-secondary .tile__headline { + font-size: 19px; + line-height: 1.21053; + font-weight: 700; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-secondary .tile__headline:lang(ar) { + line-height: 1.36844; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-secondary .tile__headline:lang(ja) { + line-height: 1.26316; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-secondary .tile__headline:lang(ko) { + line-height: 1.31579; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-secondary .tile__headline:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-secondary .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-secondary .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-secondary .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .tile.tile-hero-secondary .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.tile.tile-hero-secondary .tile__description { + padding: 32px; + justify-content: space-between; + flex-basis: 0 +} + +.tile.tile-hero-secondary .tile__media { + flex-shrink: 1 +} + +.tile.tile-hero-secondary .image { + background-size: contain +} + +.tile.tile-hero-secondary .tile__media, +.tile.tile-hero-secondary .tile__image-container { + width: 100%; + height: auto; + min-height: 362px; + flex-basis: 643px; + flex-shrink: 1 +} + +.tile.tile-hero-secondary .tile__category { + margin-bottom: 8px +} + +.tile.tile-hero-secondary .tile__timestamp { + margin-top: 12px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-hero-secondary { + flex-direction: column; + width: 333px + } + + .tile.tile-hero-secondary .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-hero-secondary .tile__media { + flex-shrink: 0 + } + + .tile.tile-hero-secondary .image { + background-size: cover + } + + .tile.tile-hero-secondary .tile__media, + .tile.tile-hero-secondary .tile__image-container { + width: 100%; + height: 187px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 + } + + .tile.tile-hero-secondary .tile__category { + margin-bottom: 4px + } + + .tile.tile-hero-secondary .tile__timestamp { + margin-top: 8px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-hero-secondary { + flex-direction: column; + width: 100% + } + + .tile.tile-hero-secondary .tile__description { + padding: 24px; + justify-content: space-between; + flex-basis: auto + } + + .tile.tile-hero-secondary .tile__media { + flex-shrink: 0 + } + + .tile.tile-hero-secondary .image { + background-size: cover + } + + .tile.tile-hero-secondary .tile__media, + .tile.tile-hero-secondary .tile__image-container { + width: 100%; + height: auto; + min-height: auto; + flex-basis: auto; + flex-shrink: 1; + padding-top: 56.25%; + height: 0; + position: relative + } + + .tile.tile-hero-secondary .tile__media .viewport-image, + .tile.tile-hero-secondary .tile__media .image, + .tile.tile-hero-secondary .tile__image-container .viewport-image, + .tile.tile-hero-secondary .tile__image-container .image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } + + .tile.tile-hero-secondary .tile__category { + margin-bottom: 8px + } + + .tile.tile-hero-secondary .tile__timestamp { + margin-top: 8px + } +} + +.tile.tile-hero-secondary:lang(ar) .image { + background-size: cover +} + + +@media (hover: hover) { + + html.no-touch.no-reduced-motion .tile.tile-list:hover .image, + html.no-touch.no-reduced-motion .tile.tile-list:hover .media--video { + transform: scale(1.05) + } +} + +@media only screen and (hover: hover) and (max-width: 734px) { + + html.no-touch .tile.tile-list:hover .image, + html.no-touch .tile.tile-list:hover .media--video { + transform: none + } +} + +html.no-touch.no-reduced-motion .tile.tile-list[data-focus-method=key] .image, +html.no-touch.no-reduced-motion .tile.tile-list[data-focus-method=key] .media--video { + transform: scale(1.05) +} + +@media only screen and (max-width: 734px) { + + html.no-touch .tile.tile-list[data-focus-method=key] .image, + html.no-touch .tile.tile-list[data-focus-method=key] .media--video { + transform: none + } +} + + +.cover { + height: 100%; + width: 100%; + object-fit: cover; +} + + +.view-archive-wrapper { + margin-top: 32px; + font-size: 17px; + line-height: 1.23536; + font-weight: 500; + letter-spacing: -.022em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + text-align: center; +} + +@media only screen and (max-width: 1068px) { + .view-archive-wrapper { + margin-top: 28px + } +} + +@media only screen and (max-width: 734px) { + .view-archive-wrapper { + margin-top: 24px + } +} + +.cta-primary-light { + letter-spacing: 0em; + border-radius: 30px; + display: inline-block; + transition: background-color 300ms cubic-bezier(0.4, 0, 0.25, 1) 0ms, border-color 300ms cubic-bezier(0.4, 0, 0.25, 1) 0ms, color 300ms cubic-bezier(0.4, 0, 0.25, 1) 0ms; + font-size: 17px; + line-height: 1.23536; + font-weight: 600; + letter-spacing: -.022em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + border: 2px solid; + padding: 10px 24px 9px; + border-color: #1d1d1f; + color: #161617; +} + +.cta-primary-light:visited { + text-decoration: none; +} + +.cta-primary-light:hover { + background: #1d1d1f; + border-color: #1d1d1f; + color: #f5f5f7; + text-decoration: none; +} + + +.tile.tile-list { + border-radius: revert; + overflow: revert; + z-index: revert; + position: revert; + background-color: transparent; + flex-direction: row; + width: 457px +} + +.tile.tile-list .tile__headline { + font-size: 17px; + line-height: 1.23536; + font-weight: 700; + letter-spacing: -.022em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + -webkit-line-clamp: 6; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden +} + +.tile.tile-list .tile__headline:lang(ar) { + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-list .tile__headline:lang(ja) { + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-list .tile__headline:lang(ko) { + line-height: 1.35296; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-list .tile__headline:lang(zh) { + letter-spacing: 0em +} + +.tile.tile-list .tile__headline:lang(th) { + line-height: 1.35296; + letter-spacing: 0em; + font-family: "SF Pro TH", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-list .tile__headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-list .tile__headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-list .tile__headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-list .tile__headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.tile.tile-list .tile__media { + border-radius: 16px; + overflow: hidden; + z-index: 0; + position: relative +} + +.tile.tile-list .tile__description { + padding: 0 0 0 24px; + justify-content: center; + flex-basis: 0 +} + +.tile.tile-list .tile__media { + flex-shrink: 1 +} + +.tile.tile-list .image { + background-size: contain +} + +.tile.tile-list .tile__media, +.tile.tile-list .tile__image-container { + width: 132px; + height: 132px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 +} + +.tile.tile-list .tile__category { + margin-bottom: 4px +} + +.tile.tile-list .tile__timestamp { + margin-top: 8px +} + +@media only screen and (max-width: 1068px) { + .tile.tile-list { + flex-direction: row; + width: 631px + } + + .tile.tile-list .tile__description { + padding: 0 0 0 24px; + justify-content: center; + flex-basis: 0 + } + + .tile.tile-list .tile__media { + flex-shrink: 1 + } + + .tile.tile-list .image { + background-size: contain + } + + .tile.tile-list .tile__media, + .tile.tile-list .tile__image-container { + width: 132px; + height: 132px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 + } + + .tile.tile-list .tile__category { + margin-bottom: 4px + } + + .tile.tile-list .tile__timestamp { + margin-top: 8px + } +} + +@media only screen and (max-width: 734px) { + .tile.tile-list { + flex-direction: row; + width: 100% + } + + .tile.tile-list .tile__description { + padding: 0 0 0 16px; + justify-content: center; + flex-basis: 0 + } + + .tile.tile-list .tile__media { + flex-shrink: 1 + } + + .tile.tile-list .image { + background-size: contain + } + + .tile.tile-list .tile__media, + .tile.tile-list .tile__image-container { + width: 105px; + height: 105px; + min-height: auto; + flex-basis: auto; + flex-shrink: 1 + } + + .tile.tile-list .tile__category { + margin-bottom: 4px + } + + .tile.tile-list .tile__timestamp { + margin-top: 8px + } + + .tile.tile-list .tile__media { + border-radius: 12px + } +} + +@media (hover: hover) { + + html.no-touch.no-reduced-motion .tile.tile-list:hover .image, + html.no-touch.no-reduced-motion .tile.tile-list:hover .media--video { + transform: scale(1.05) + } +} + +@media only screen and (hover: hover) and (max-width: 734px) { + + html.no-touch .tile.tile-list:hover .image, + html.no-touch .tile.tile-list:hover .media--video { + transform: none + } +} + +html.no-touch.no-reduced-motion .tile.tile-list[data-focus-method=key] .image, +html.no-touch.no-reduced-motion .tile.tile-list[data-focus-method=key] .media--video { + transform: scale(1.05) +} + +@media only screen and (max-width: 734px) { + + html.no-touch .tile.tile-list[data-focus-method=key] .image, + html.no-touch .tile.tile-list[data-focus-method=key] .media--video { + transform: none + } +} + + +.pagetitle.component { + margin-top: 0; + margin-bottom: 0 +} + +.pagetitle .hero-headline { + font-size: 48px; + line-height: 1.08349; + font-weight: 700; + letter-spacing: -.003em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagetitle .hero-headline:lang(ar) { + line-height: 1.25; + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagetitle .hero-headline:lang(ja) { + line-height: 1.14599; + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagetitle .hero-headline:lang(ko) { + line-height: 1.1875; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagetitle .hero-headline:lang(zh) { + letter-spacing: 0em +} + +.pagetitle .hero-headline:lang(th) { + line-height: 1.33349; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagetitle .hero-headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagetitle .hero-headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagetitle .hero-headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagetitle .hero-headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .pagetitle .hero-headline { + font-size: 40px; + line-height: 1.1; + font-weight: 700; + letter-spacing: 0em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(ar) { + line-height: 1.3; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(ja) { + line-height: 1.175; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(ko) { + line-height: 1.2; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(th) { + line-height: 1.35; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 734px) { + .pagetitle .hero-headline { + font-size: 32px; + line-height: 1.125; + font-weight: 700; + letter-spacing: .004em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(ar) { + line-height: 1.34375; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(ja) { + line-height: 1.21875; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(ko) { + line-height: 1.21875; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagetitle .hero-headline:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + + +.category.component { + margin-top: 0; + margin-bottom: 20px +} + + +.component { + margin-left: auto; + margin-right: auto; + width: 980px +} + +.component::before, +.component::after { + content: ' '; + display: table +} + +.component::after { + clear: both +} + +@media only screen and (min-width: 1441px) { + .component { + margin-left: auto; + margin-right: auto; + width: 980px + } +} + +@media only screen and (max-width: 1068px) { + .component { + margin-left: auto; + margin-right: auto; + width: 692px + } +} + +@media only screen and (max-width: 734px) { + .component { + margin-left: auto; + margin-right: auto; + width: 87.5% + } +} + +.component { + margin-top: 44px; + margin-bottom: 44px +} + +@media only screen and (max-width: 1068px) { + .component { + margin-top: 36px; + margin-bottom: 36px + } +} + +@media only screen and (max-width: 734px) { + .component { + margin-top: 32px; + margin-bottom: 32px + } +} + +@media only screen and (max-width: 734px) { + .component { + max-width: 414px; + width: 100%; + margin-left: auto; + margin-right: auto + } +} + + + +.pagebody { + font-size: 17px; + line-height: 1.4211; + font-weight: 400; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody:lang(ar) { + line-height: 1.57895; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody:lang(ja) { + line-height: 1.47376; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody:lang(ko) { + line-height: 1.52632; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .pagebody { + font-size: 17px; + line-height: 1.47059; + font-weight: 400; + letter-spacing: -.022em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody:lang(ar) { + line-height: 1.58824; + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody:lang(ja) { + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody:lang(ko) { + line-height: 1.58824; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody:lang(zh) { + letter-spacing: 0em + } + + .pagebody:lang(th) { + line-height: 1.35296; + letter-spacing: 0em; + font-family: "SF Pro TH", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.pagebody-media { + margin-top: 0; + margin-bottom: 15px; + width: 291px +} + +@media only screen and (max-width: 1068px) { + .pagebody-media { + width: 206px + } +} + +@media only screen and (max-width: 734px) { + .pagebody-media { + width: 100% + } +} + +.pagebody-media.left { + float: left; + margin-left: -12.5%; + margin-right: 36px +} + +@media only screen and (max-width: 1068px) { + .pagebody-media.left { + margin-left: -10%; + margin-right: 24px + } +} + +@media only screen and (max-width: 734px) { + .pagebody-media.left { + margin-right: 0 + } +} + +.pagebody-media.right { + float: right; + margin-right: -12.5%; + margin-left: 36px +} + +@media only screen and (max-width: 1068px) { + .pagebody-media.right { + margin-right: -10%; + margin-left: 24px + } +} + +@media only screen and (max-width: 734px) { + .pagebody-media.right { + margin-left: 0 + } +} + +.pagebody-media .image-sharesheet { + display: block +} + +.pagebody-media .image-description, +.pagebody-media .video-description { + margin-left: 0; + margin-right: 0; + margin-bottom: 0 +} + +@media only screen and (max-width: 734px) { + + .pagebody-media.left, + .pagebody-media.right { + float: none; + margin: 28px auto + } + + .pagebody-media:first-child { + margin-top: 0 + } +} + +.pagebody-copy { + margin-bottom: 1.4211em +} + +.pagebody-copy:lang(ar) { + margin-bottom: 1.57895em +} + +.pagebody-copy:lang(ja) { + margin-bottom: 1.47376em +} + +.pagebody-copy:lang(th) { + margin-bottom: 1.36844em +} + +.pagebody-copy:lang(ko) { + margin-bottom: 1.52632em +} + +.pagebody-copy:first-child { + margin-top: 0 +} + +.pagebody-copy:last-child { + margin-bottom: 0 +} + + + + + +.component-content { + margin-left: auto; + margin-right: auto; + width: 653px +} + +@media only screen and (max-width: 1068px) { + .component-content { + width: 576px + } +} + +@media only screen and (max-width: 734px) { + .component-content { + width: 87.5% + } +} + +.image-big .component-content { + width: 980px +} + +@media only screen and (max-width: 1068px) { + .image-big .component-content { + width: 692px + } +} + +@media only screen and (max-width: 734px) { + .image-big .component-content { + width: 100% + } +} + +.image-inline .component-content { + width: 653px +} + +@media only screen and (max-width: 1068px) { + .image-inline .component-content { + width: 576px + } +} + +@media only screen and (max-width: 734px) { + .image-inline .component-content { + width: 87.5% + } +} + +@media only screen and (max-width: 734px) { + + .gallery, + .image, + .video { + width: 100% + } + + .gallery:not(.body-copy-wide) .component-content, + .image:not(.image-fullbleed) .component-content { + width: 320px + } +} + + + +.image-sharesheet { + display: table; + border-radius: 10px; + overflow: hidden; + z-index: 0; + position: relative +} + +@media only screen and (max-width: 734px) { + .image-sharesheet { + display: block + } +} + +@media only screen and (max-width: 734px) { + .image.image-fullbleed .image-sharesheet { + border-radius: 0 + } +} + +@media only screen and (min-width: 416px) and (max-width: 734px) { + .image.image-fullbleed .image-sharesheet { + border-radius: 10px + } +} + +@media only screen and (max-width: 415px) { + .image .image-sharesheet { + border-radius: 0 + } +} + +.component.not-rounded .image-sharesheet { + border-radius: 0 !important +} + + + +.image-description { + position: relative; + display: flex; + align-items: flex-start; + justify-content: space-between; + color: #6e6e73; + margin: 16px 16px 0; + font-size: 12px; + line-height: 1.33337; + font-weight: 600; + letter-spacing: -.01em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.theme-dark .image-description { + color: #86868b +} + +.image-description:lang(ar) { + line-height: 1.66667; + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description:lang(ja) { + line-height: 1.41667; + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description:lang(ko) { + line-height: 1.41667; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description:lang(zh) { + letter-spacing: 0em +} + +.image-description:lang(th) { + line-height: 1.33337; + letter-spacing: 0em; + font-family: "SF Pro TH", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .image-description { + margin-top: 12px + } +} + +.image-description:empty { + margin-bottom: 0 +} + +.image-description .icon { + font-size: 19px; + line-height: 1.4211; + font-weight: 400; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description .icon:lang(ar) { + line-height: 1.57895; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description .icon:lang(ja) { + line-height: 1.47376; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description .icon:lang(ko) { + line-height: 1.52632; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description .icon:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description .icon:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description .icon:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description .icon:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.image-description .icon:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .image-description .icon { + font-size: 17px; + line-height: 1.47059; + font-weight: 400; + letter-spacing: -.022em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .image-description .icon:lang(ar) { + line-height: 1.58824; + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .image-description .icon:lang(ja) { + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .image-description .icon:lang(ko) { + line-height: 1.58824; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .image-description .icon:lang(zh) { + letter-spacing: 0em + } + + .image-description .icon:lang(th) { + line-height: 1.35296; + letter-spacing: 0em; + font-family: "SF Pro TH", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .image-description .icon:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .image-description .icon:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .image-description .icon:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .image-description .icon:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.image-description .icon::before, +.image-description .icon::after { + line-height: inherit +} + +.body-copy-wide .image-description { + margin-left: 0; + margin-right: 0 +} + +.image-description .image-caption { + flex-grow: 1 +} + +.body-copy-wide .image-description { + margin-right: 0; + margin-left: 0 +} + +.image-keyline .image-asset, +.image-keyline .picture-image { + box-sizing: border-box; + border: 1px solid #d2d2d7 +} + +.image.image-big { + min-width: 320px +} + +.image.image-fullbleed .image-sharesheet, +.image.image-inline.body-copy-wide .image-sharesheet, +.image.image-grid.body-copy-wide .image-sharesheet { + display: block +} + +.image.body-copy-wide.image-fullbleed .image-description { + width: 653px; + margin-left: auto; + margin-right: auto +} + +@media only screen and (max-width: 1068px) { + .image.body-copy-wide.image-fullbleed .image-description { + width: 576px + } +} + +@media only screen and (max-width: 734px) { + .image.body-copy-wide.image-fullbleed .image-description { + width: 87.5% + } +} + +@media only screen and (max-width: 734px) { + .image.body-copy-wide.image-inline .component-content { + width: 100% + } +} + +.no-touch .image:hover { + position: relative; + z-index: 1 +} + +@media only screen and (max-width: 734px) { + .image-inline .image-description { + margin-left: auto; + margin-right: auto; + width: 87.5% + } +} + +.image.image-wide { + width: 100% +} + +.image.image-wide .component-content { + width: 100%; + max-width: 2560px +} + +.image.image-wide .image-asset { + width: 100%; + height: 100% +} + +.image.image-wide .image-sharesheet, +.image.image-wide .pullquote-cover { + width: 100%; + border-radius: 0 +} + +@media only screen and (min-width: 1441px) { + + .image.image-wide .image-sharesheet, + .image.image-wide .pullquote-cover { + max-width: 1920px; + margin: 0 auto + } +} + +@media only screen and (min-width: 1922px) { + + .image.image-wide .image-sharesheet, + .image.image-wide .pullquote-cover { + border-radius: 10px; + overflow: hidden; + z-index: 0; + position: relative + } +} + +@media only screen and (min-width: 1441px) { + .image.image-wide .picture-image { + position: relative; + top: 50%; + left: 50%; + transform: translate(-50%, -50%) scale(1.01) + } +} + +.image-grid { + position: relative; + z-index: 1 +} + +.image-grid::before, +.image-grid::after { + content: ' '; + display: table +} + +.image-grid::after { + clear: both +} + +.image-grid-item { + box-sizing: border-box; + flex: 0 0 283px; + margin-bottom: 44px +} + +@media only screen and (max-width: 1068px) { + .image-grid-item { + margin-bottom: 36px + } +} + +@media only screen and (max-width: 734px) { + .image-grid-item { + flex: 0 0 100%; + margin-bottom: 32px + } +} + +.image-grid-item:nth-child(odd) { + margin-right: 5px +} + +@media only screen and (max-width: 734px) { + .image-grid-item:nth-child(odd) { + margin-right: 0 + } +} + +@media only screen and (max-width: 734px) { + .image-grid .row:last-of-type .image-grid-item:not(:last-of-type) { + margin-bottom: 32px + } +} + +.image-grid .row:last-of-type .image-grid-item { + margin-bottom: 0 +} + +.image-grid .row { + width: 100%; + position: relative; + display: flex; + flex-direction: row +} + +@media only screen and (max-width: 734px) { + .image-grid .row { + display: block + } +} + +.touch .image-grid.body-copy-wide .component-content { + width: component-content-width +} + +@media only screen and (max-width: 734px) { + .touch .image-grid.body-copy-wide .component-content { + width: 87.5% + } +} + +@media only screen and (max-width: 734px) { + .no-touch .image-grid.body-copy-wide .component-content { + width: component-content-width + } +} + +@media only screen and (max-width: 734px) and (max-width: 734px) { + .no-touch .image-grid.body-copy-wide .component-content { + width: 87.5% + } +} + +.datelocation { + position: relative; + z-index: 1 +} + +.datelocation::before, +.datelocation::after { + content: ' '; + display: table +} + +.datelocation::after { + clear: both +} + +.datelocation-copy { + font-size: 19px; + line-height: 1.4211; + font-weight: 400; + letter-spacing: .012em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + margin: 0 +} + +.datelocation-copy:lang(ar) { + line-height: 1.57895; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.datelocation-copy:lang(ja) { + line-height: 1.47376; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.datelocation-copy:lang(ko) { + line-height: 1.52632; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.datelocation-copy:lang(th) { + line-height: 1.36844; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.datelocation-copy:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.datelocation-copy:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.datelocation-copy:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.datelocation-copy:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .datelocation-copy { + font-size: 17px; + line-height: 1.47059; + font-weight: 400; + letter-spacing: -.022em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .datelocation-copy:lang(ar) { + line-height: 1.58824; + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .datelocation-copy:lang(ja) { + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .datelocation-copy:lang(ko) { + line-height: 1.58824; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .datelocation-copy:lang(zh) { + letter-spacing: 0em + } + + .datelocation-copy:lang(th) { + line-height: 1.35296; + letter-spacing: 0em; + font-family: "SF Pro TH", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .datelocation-copy:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .datelocation-copy:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .datelocation-copy:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .datelocation-copy:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + + +.modal-gallery-trigger { + border: 0; + background: transparent; + cursor: pointer; + position: relative; + display: block; + width: 100% +} + +.modal-gallery-trigger::after { + content: ''; + opacity: 0; + position: absolute; + pointer-events: none; + top: 0; + left: 0; + right: 0; + bottom: 0; + border: 4px solid rgba(0, 125, 250, 0.6) +} + +.modal-gallery-trigger[data-focus-method=key]::after { + opacity: 1 +} + + +.picture-image { + display: inline-block; + width: 100%; + height: auto +} + +.picture { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0 +} + +.picture.no-dl { + pointer-events: none +} + +.icon.icon-arrowdown::before, +.icon.icon-arrowdown::after { + font-family: "social-media-font" !important; + content: "" +} + + + + +.theme-dark { + background-color: #000; + color: #f5f5f7; + --footer-background: #121214; + --footer-border-color: #424245; + --footer-text-color: #86868b; + --footer-link-color: #d2d2d7; + --footer-pipe-color: #6e6e73; + --footer-directory-title-color: #f5f5f7; + --footer-directory-title-color-hover: #fff; +} + +.theme-dark h1, +.theme-dark h2, +.theme-dark h3, +.theme-dark h4, +.theme-dark h5, +.theme-dark h6 { + color: #f5f5f7 +} + +.theme-dark a, +.theme-dark .link { + color: #f5f5f7; +} + +.theme-dark .footnote a { + color: inherit +} + +.theme-dark .footnote a:hover { + color: #2997ff +} + +.theme-dark a.block { + color: inherit +} + +.theme-dark a.block .block-link { + color: #2997ff +} + +.theme-dark .dotnav .dotnav-item { + background-color: rgba(134, 134, 139, 0.4) +} + +.theme-dark .dotnav .dotnav-item:hover { + background-color: rgba(134, 134, 139, 0.6) +} + +.theme-dark .dotnav .dotnav-item.current { + background-color: #86868b +} + +.theme-dark .paddlenav .paddlenav-arrow { + background-color: rgba(0, 0, 0, 0); + color: rgba(134, 134, 139, 0.8) +} + +.theme-dark .paddlenav .paddlenav-arrow:hover { + background-color: rgba(0, 0, 0, 0); + color: #86868b +} + +.theme-dark .paddlenav .paddlenav-arrow:active { + background-color: rgba(0, 0, 0, 0); + color: #86868b +} + +.theme-dark .paddlenav .paddlenav-arrow:focus[data-focus-method="mouse"]:not(input):not(textarea):not(select):hover, +.theme-dark .paddlenav .paddlenav-arrow:focus[data-focus-method="touch"]:not(input):not(textarea):not(select):hover { + background-color: rgba(0, 0, 0, 0); + color: #86868b +} + +.theme-dark .paddlenav .paddlenav-arrow:focus[data-focus-method="mouse"]:not(input):not(textarea):not(select):active, +.theme-dark .paddlenav .paddlenav-arrow:focus[data-focus-method="touch"]:not(input):not(textarea):not(select):active { + background-color: rgba(0, 0, 0, 0); + color: #86868b +} + +.theme-dark .paddlenav-framed .paddlenav-arrow { + background-color: rgba(210, 210, 215, 0.2); + color: rgba(134, 134, 139, 0.8) +} + +.theme-dark .paddlenav-framed .paddlenav-arrow:hover { + background-color: rgba(210, 210, 215, 0.28); + color: #86868b +} + +.theme-dark .paddlenav-framed .paddlenav-arrow:active { + background-color: rgba(210, 210, 215, 0.36); + color: #86868b +} + +.theme-dark .paddlenav-framed .paddlenav-arrow:focus[data-focus-method="mouse"]:not(input):not(textarea):not(select):hover, +.theme-dark .paddlenav-framed .paddlenav-arrow:focus[data-focus-method="touch"]:not(input):not(textarea):not(select):hover { + background-color: rgba(210, 210, 215, 0.28); + color: #86868b +} + +.theme-dark .paddlenav-framed .paddlenav-arrow:focus[data-focus-method="mouse"]:not(input):not(textarea):not(select):active, +.theme-dark .paddlenav-framed .paddlenav-arrow:focus[data-focus-method="touch"]:not(input):not(textarea):not(select):active { + background-color: rgba(210, 210, 215, 0.36); + color: #86868b +} + +.theme-dark .quote .quote-copy { + color: #f5f5f7 +} + +.theme-dark .quote .quote-credit, +.theme-dark .quote .quote-subcredit { + color: #f5f5f7 +} + +.theme-dark .sosumi { + color: #6e6e73 +} + +.theme-dark .sosumi a { + color: #a1a1a6 +} + +.theme-dark .violator { + background: rgba(0, 0, 0, 0); + border-color: #f56300; + color: #f56300 +} + +.theme-dark .violator-frameless { + background: rgba(0, 0, 0, 0); + border-color: #f56300; + color: #f56300 +} + +.theme-dark .violator-secondary { + background: rgba(0, 0, 0, 0); + border-color: #86868b; + color: #86868b +} + + +.tertiarynav { + margin: 36px auto 50px +} + +.tertiarynav .component-content { + border-top: 1px solid #d2d2d7 +} + +.theme-dark .tertiarynav .component-content { + border-top-color: #424245 +} + +.theme-dark header { + background-color: rgba(29, 29, 31, 0.7); +} + +.pagebody-header { + font-size: 24px; + line-height: 1.16667; + font-weight: 700; + letter-spacing: .009em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + margin-bottom: 16px; + margin-top: 52px +} + +.pagebody-header:lang(ar) { + line-height: 1.33341; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header:lang(ja) { + line-height: 1.25; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header:lang(ko) { + line-height: 1.29167; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .pagebody-header { + font-size: 21px; + line-height: 1.19048; + font-weight: 700; + letter-spacing: .011em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header:lang(ja) { + line-height: 1.2381; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header:lang(ko) { + line-height: 1.2858; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header:lang(th) { + line-height: 1.381; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header:lang(ar) { + line-height: 1.4286; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 1068px) { + .pagebody-header { + margin-top: 48px + } +} + +@media only screen and (max-width: 734px) { + .pagebody-header { + margin-top: 44px + } +} + +.pagebody-header--secondary { + font-size: 40px; + line-height: 1.1; + font-weight: 700; + letter-spacing: 0em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + margin-top: 52px; + margin-bottom: 24px +} + +.pagebody-header--secondary:lang(ar) { + line-height: 1.3; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header--secondary:lang(ja) { + line-height: 1.175; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header--secondary:lang(ko) { + line-height: 1.2; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header--secondary:lang(th) { + line-height: 1.35; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header--secondary:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header--secondary:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header--secondary:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.pagebody-header--secondary:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .pagebody-header--secondary { + font-size: 32px; + line-height: 1.125; + font-weight: 700; + letter-spacing: .004em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(ar) { + line-height: 1.34375; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(ja) { + line-height: 1.21875; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(ko) { + line-height: 1.21875; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 734px) { + .pagebody-header--secondary { + font-size: 28px; + line-height: 1.14286; + font-weight: 700; + letter-spacing: .007em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(ko) { + line-height: 1.25; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(th) { + line-height: 1.39286; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(ar) { + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(ja) { + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .pagebody-header--secondary:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 1068px) { + .pagebody-header--secondary { + margin-top: 48px; + margin-bottom: 20px + } +} + +@media only screen and (max-width: 734px) { + .pagebody-header--secondary { + margin-top: 44px + } +} + +.pagebody-header:first-child { + margin-top: 8px +} + +@media only screen and (max-width: 1068px) { + .pagebody-header:first-child { + margin-top: 12px + } +} + +@media only screen and (max-width: 734px) { + .pagebody-header:first-child { + margin-top: 12px + } +} + +.pagebody-header:last-child { + margin-bottom: 0 +} + + +.category-eyebrow { + font-size: 12px; + line-height: 1.33337; + font-weight: 700; + letter-spacing: -.01em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow:lang(ar) { + line-height: 1.66667; + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow:lang(ja) { + line-height: 1.41667; + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow:lang(ko) { + line-height: 1.41667; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow:lang(zh) { + letter-spacing: 0em +} + +.category-eyebrow:lang(th) { + line-height: 1.33337; + letter-spacing: 0em; + font-family: "SF Pro TH", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow__category, +.category-eyebrow__date { + display: block +} + +@media only screen and (max-width: 1068px) { + + .category-eyebrow__category, + .category-eyebrow__date { + margin-right: -7px + } +} + +@media only screen and (max-width: 734px) { + + .category-eyebrow__category, + .category-eyebrow__date { + margin-right: 0 + } +} + +.category-eyebrow__category::after, +.category-eyebrow__category::before, +.category-eyebrow__date::after, +.category-eyebrow__date::before { + alt: '' +} + +.category-eyebrow__category { + text-transform: uppercase; + color: #6e6e73; + border-color: #6e6e73 +} + +.theme-dark .category-eyebrow__category { + color: #86868b; + border-color: #86868b +} + +@media only screen and (max-width: 1068px) { + .landingtile-featured .category-eyebrow__category { + font-size: 12px; + line-height: 1.33337; + font-weight: 400; + letter-spacing: -.01em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + border-radius: 12px; + padding-left: 11px; + padding-right: 11px; + padding-top: 3px; + padding-bottom: 3px + } + + .landingtile-featured .category-eyebrow__category:lang(ar) { + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .landingtile-featured .category-eyebrow__category:lang(ja) { + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .landingtile-featured .category-eyebrow__category:lang(ko) { + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .landingtile-featured .category-eyebrow__category:lang(zh) { + letter-spacing: 0em + } + + .landingtile-featured .category-eyebrow__category:lang(th) { + font-family: "SF Pro TH", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .landingtile-featured .category-eyebrow__category:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .landingtile-featured .category-eyebrow__category:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .landingtile-featured .category-eyebrow__category:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .landingtile-featured .category-eyebrow__category:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +.category-eyebrow__date { + font-size: 14px; + line-height: 1.28577; + font-weight: 600; + letter-spacing: -.016em; + font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow__date:lang(ar) { + letter-spacing: 0em; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow__date:lang(ja) { + line-height: 1.35718; + letter-spacing: 0em; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow__date:lang(ko) { + line-height: 1.42859; + letter-spacing: 0em; + font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow__date:lang(zh) { + letter-spacing: 0em +} + +.category-eyebrow__date:lang(th) { + line-height: 1.35718; + letter-spacing: 0em; + font-family: "SF Pro TH", "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow__date:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow__date:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow__date:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.category-eyebrow__date:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.page-article .category-eyebrow__date { + margin-top: 4px +} + +.category.component { + margin-top: 0; + margin-bottom: 20px +} + + +.article-subhead { + font-size: 24px; + line-height: 1.16667; + font-weight: 500; + letter-spacing: .009em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + margin-top: 20px; + margin-bottom: 0 +} + +.article-subhead:lang(ar) { + line-height: 1.33341; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.article-subhead:lang(ja) { + line-height: 1.25; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.article-subhead:lang(ko) { + line-height: 1.29167; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.article-subhead:lang(th) { + line-height: 1.375; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.article-subhead:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.article-subhead:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.article-subhead:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +.article-subhead:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif +} + +@media only screen and (max-width: 1068px) { + .article-subhead { + font-size: 21px; + line-height: 1.19048; + font-weight: 500; + letter-spacing: .011em; + font-family: "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .article-subhead:lang(ja) { + line-height: 1.2381; + font-family: "SF Pro JP", "SF Pro Display", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .article-subhead:lang(ko) { + line-height: 1.2858; + font-family: "SF Pro KR", "SF Pro Display", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .article-subhead:lang(th) { + line-height: 1.381; + font-family: "SF Pro TH", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .article-subhead:lang(ar) { + line-height: 1.4286; + font-family: "SF Pro AR", "SF Pro Gulf", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .article-subhead:lang(zh-CN) { + font-family: "SF Pro SC", "SF Pro Display", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .article-subhead:lang(zh-HK) { + font-family: "SF Pro HK", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .article-subhead:lang(zh-MO) { + font-family: "SF Pro HK", "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang HK", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } + + .article-subhead:lang(zh-TW) { + font-family: "SF Pro TC", "SF Pro Display", "SF Pro Icons", "PingFang TC", "Helvetica Neue", "Helvetica", "Arial", sans-serif + } +} + +@media only screen and (max-width: 1068px) { + .article-subhead { + margin-top: 16px + } +} + +.article-subhead+.sharesheet { + margin-top: 24px +} + +@media only screen and (max-width: 1068px) { + .article-subhead+.sharesheet { + margin-top: 20px + } +} + +.article-subhead+.tagssheet { + margin-top: 24px; + margin-bottom: 3px; +} + +@media only screen and (max-width: 1068px) { + .article-subhead+.tagssheet { + margin-top: 20px; + margin-bottom: 3px; + } +} + +.article-header, +.featured-header { + padding: 16px 0px 0px 0px; +} + + +.footer-main { + margin: 0 auto; + width: 100%; + border-top: 1px solid rgb(224 226 217 / 1); +} + +.footer-wraper { + padding: 20px; + margin: 0 auto; +} + +.footer-box { + margin: 0 auto; + display: flex; + flex-direction: column; + align-items: center; +} + +.footer-main .foot-nav { + color: var(--gray-text); + width: 100%; +} + +.footer-main .item .logo { + font-size: 16px; + font-weight: 600; + color: var(--black); +} + +.footer-main .foot-nav-items { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: flex-start; +} + +@media screen and (min-width: 320px) { + .footer-main .foot-nav-items { + flex-direction: column; + } +} + +@media screen and (min-width: 768px) { + .footer-main .foot-nav-items { + flex-direction: row; + } +} + +@media screen and (min-width: 955px) { + .footer-main .foot-nav-items { + flex-direction: row; + } +} + + +.footer-main { + margin: 0 auto; + width: 100%; + background-color: var(--footer-background); + border: none; +} + +.theme-dark .footer-main { + background-color: var(--footer-background); +} + +.footer-wraper { + padding: 20px; + margin: 0 auto; +} + +.footer-box { + margin: 0 auto; + display: flex; + flex-direction: column; + align-items: center; +} + +.footer-main .foot-nav { + color: var(--footer-text-color); + width: 100%; +} + +.footer-main .item .logo { + font-size: 16px; + font-weight: 600; + color: var(--footer-directory-title-color); +} + +.footer-main .foot-nav-items { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: flex-start; +} + +@media screen and (min-width: 320px) { + .footer-main .foot-nav-items { + flex-direction: column; + } +} + +@media screen and (min-width: 768px) { + .footer-main .foot-nav-items { + flex-direction: row; + } +} + +@media screen and (min-width: 955px) { + .footer-main .foot-nav-items { + flex-direction: row; + } +} + + + +.foot-nav-items .item { + display: flex; + flex-direction: column; +} + +.footer-main .item div, +.footer-main .item a { + padding: 8px 5px; + font-size: 14px; + color: var(--footer-pipe-color); +} + +.footer-main .item a:hover { + color: var(--footer-directory-title-color-hover); +} + +.footer-main .foot-nav-items .item-title { + color: var(--footer-directory-title-color); + font-size: 14px; + font-weight: 600; +} + +.footer-main .copyright { + color: var(--footer-pipe-color); + padding-top: 20px; + margin-top: 20px; + font-size: 14px; +} + + +.page-article table { + overflow: auto; + display: block; + border-spacing: 0; + border-collapse: collapse; + margin-top: 1rem; + margin-bottom: 1rem +} + +.page-article table tr th, +.page-article table tr td { + padding: .5rem 1rem; + border: 1px solid #e9ecef; +} + +.page-article table tr:nth-child(2n) { + background: #f8f9fa; +} + +.code pre { + overflow-x: auto; + border-radius: 8px; +} + + +.theme-dark table th, +.theme-dark table td { + color: #eee !important; +} + +.theme-dark table th { + background: #000000 !important; +} + +.theme-dark table tr:nth-child(2n) { + background: #000000; +} + +.tag { + cursor: pointer; + display: inline-block; + text-align: center; + white-space: nowrap; + font-size: 12px; + line-height: 1.33337; + font-weight: 400; + letter-spacing: -.01em; + min-width: 23px; + padding-left: 11px; + padding-right: 11px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 12px; + background: #0071e3; + color: #fff; + margin-right: 12px; +} + +.tag:hover { + text-decoration: none; + background: #0077ED; +} + +.article-copyright { + background-color: #f5f5f7; + border-radius: 10px; + display: flex; + flex-direction: column; + margin: 0; + padding: 10px 0px; + font-size: 14px; +} + +.theme-dark .article-copyright { + background-color: #1d1d1f; +} + +.article-copyright .content { + margin: 0 32px; + padding-bottom: 8px; + padding-top: 8px; +} + +@media only screen and (max-width: 734px) { + .article-copyright .contentm { + margin: 0 16px; + } +} + + +@media only screen and (max-width: 1068px) { + .article-copyright .content { + margin: 0 16px; + } +} + +section.archive { + min-height: 78vh; + background-color: #f2f2f2; + margin-top: 0; +} + +.section-tag { + padding: 24px 0px; +} + +.tag-header { + font-size: 24px; + line-height: 1.16667; + font-weight: 700; + letter-spacing: .009em; + ; +} + +.archive-tag { + background: white; + padding: 1em 1em; + border-radius: 8px; + margin: 10px 0px; +} + +a.tag_post-content { + color: #1d1d1f; + letter-spacing: 0.011em; + font-size: 17px; +} + + +.tag-post-list li { + padding: 0.3em 0; + margin: 0px 1em; +} + +span.tag-date { + margin-right: 5px; +} + +@media only screen and (max-width: 1068px) { + .tag-header { + font-size: 21px; + } + + a.tag_post-content { + font-size: 14px; + } +} + +@media only screen and (max-width: 734px) { + .tag-header { + font-size: 18px; + } + + .tag-post-list li { + margin: 0px 0em; + } +} + +ul>li, ol>li { + margin: 1em 0px; +} + +code { + margin: 0px 0.25em; +} + +blockquote { + background: #fafafa; + border-left: 0.3em solid #ccc; + padding: 0.5em 0.5em; + border-radius: 4px; + margin-bottom: 1.4211em; + color: #6e6e73; + font-size: 16px; +} + +.theme-dark blockquote { + background: #1d1d1f; + border-left: 0.3em solid #ccc; + color: #6e6e73; +} + +.theme-dark blockquote { + background: #1d1d1f; + border-left: 0.39em solid #8c7f7f; + color: #9999a5; +} + +blockquote p { + display: inline; +} diff --git a/themes/itheme/static/css/search.css b/themes/itheme/static/css/search.css new file mode 100644 index 0000000..40d4811 --- /dev/null +++ b/themes/itheme/static/css/search.css @@ -0,0 +1,21 @@ +#modal-wrapper{ + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(25,25,25,0.3); + z-index: 999; + backdrop-filter: blur(5px); +} + +.modal-body{ + width: 50%; + transform: translateX(50%); + margin-top: 10vh; +} + +.aa-Panel{ + position: fixed !important; + z-index: 999; +}
\ No newline at end of file diff --git a/themes/itheme/static/js/algoliasearch.umd.js b/themes/itheme/static/js/algoliasearch.umd.js new file mode 100644 index 0000000..d48ce17 --- /dev/null +++ b/themes/itheme/static/js/algoliasearch.umd.js @@ -0,0 +1,2316 @@ +/*! algoliasearch.umd.js | 4.17.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */ +!(function (t, e) { + "object" == typeof exports && "undefined" != typeof module + ? (module.exports = e()) + : "function" == typeof define && define.amd + ? define(e) + : ((t = t || self).algoliasearch = e()); +})(this, function () { + "use strict"; + function t(t, e, r) { + return ( + e in t + ? Object.defineProperty(t, e, { + value: r, + enumerable: !0, + configurable: !0, + writable: !0, + }) + : (t[e] = r), + t + ); + } + function e(t, e) { + var r = Object.keys(t); + if (Object.getOwnPropertySymbols) { + var n = Object.getOwnPropertySymbols(t); + e && + (n = n.filter(function (e) { + return Object.getOwnPropertyDescriptor(t, e).enumerable; + })), + r.push.apply(r, n); + } + return r; + } + function r(r) { + for (var n = 1; n < arguments.length; n++) { + var a = null != arguments[n] ? arguments[n] : {}; + n % 2 + ? e(Object(a), !0).forEach(function (e) { + t(r, e, a[e]); + }) + : Object.getOwnPropertyDescriptors + ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(a)) + : e(Object(a)).forEach(function (t) { + Object.defineProperty( + r, + t, + Object.getOwnPropertyDescriptor(a, t), + ); + }); + } + return r; + } + function n(t, e) { + if (null == t) return {}; + var r, + n, + a = (function (t, e) { + if (null == t) return {}; + var r, + n, + a = {}, + o = Object.keys(t); + for (n = 0; n < o.length; n++) + (r = o[n]), e.indexOf(r) >= 0 || (a[r] = t[r]); + return a; + })(t, e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(t); + for (n = 0; n < o.length; n++) + (r = o[n]), + e.indexOf(r) >= 0 || + (Object.prototype.propertyIsEnumerable.call(t, r) && (a[r] = t[r])); + } + return a; + } + function a(t, e) { + return ( + (function (t) { + if (Array.isArray(t)) return t; + })(t) || + (function (t, e) { + if ( + !( + Symbol.iterator in Object(t) || + "[object Arguments]" === Object.prototype.toString.call(t) + ) + ) + return; + var r = [], + n = !0, + a = !1, + o = void 0; + try { + for ( + var i, u = t[Symbol.iterator](); + !(n = (i = u.next()).done) && + (r.push(i.value), !e || r.length !== e); + n = !0 + ); + } catch (t) { + (a = !0), (o = t); + } finally { + try { + n || null == u.return || u.return(); + } finally { + if (a) throw o; + } + } + return r; + })(t, e) || + (function () { + throw new TypeError( + "Invalid attempt to destructure non-iterable instance", + ); + })() + ); + } + function o(t) { + return ( + (function (t) { + if (Array.isArray(t)) { + for (var e = 0, r = new Array(t.length); e < t.length; e++) + r[e] = t[e]; + return r; + } + })(t) || + (function (t) { + if ( + Symbol.iterator in Object(t) || + "[object Arguments]" === Object.prototype.toString.call(t) + ) + return Array.from(t); + })(t) || + (function () { + throw new TypeError("Invalid attempt to spread non-iterable instance"); + })() + ); + } + function i(t) { + var e, + r = "algoliasearch-client-js-".concat(t.key), + n = function () { + return void 0 === e && (e = t.localStorage || window.localStorage), e; + }, + o = function () { + return JSON.parse(n().getItem(r) || "{}"); + }; + return { + get: function (t, e) { + var r = + arguments.length > 2 && void 0 !== arguments[2] + ? arguments[2] + : { + miss: function () { + return Promise.resolve(); + }, + }; + return Promise.resolve() + .then(function () { + var r = JSON.stringify(t), + n = o()[r]; + return Promise.all([n || e(), void 0 !== n]); + }) + .then(function (t) { + var e = a(t, 2), + n = e[0], + o = e[1]; + return Promise.all([n, o || r.miss(n)]); + }) + .then(function (t) { + return a(t, 1)[0]; + }); + }, + set: function (t, e) { + return Promise.resolve().then(function () { + var a = o(); + return ( + (a[JSON.stringify(t)] = e), n().setItem(r, JSON.stringify(a)), e + ); + }); + }, + delete: function (t) { + return Promise.resolve().then(function () { + var e = o(); + delete e[JSON.stringify(t)], n().setItem(r, JSON.stringify(e)); + }); + }, + clear: function () { + return Promise.resolve().then(function () { + n().removeItem(r); + }); + }, + }; + } + function u(t) { + var e = o(t.caches), + r = e.shift(); + return void 0 === r + ? { + get: function (t, e) { + var r = + arguments.length > 2 && void 0 !== arguments[2] + ? arguments[2] + : { + miss: function () { + return Promise.resolve(); + }, + }, + n = e(); + return n + .then(function (t) { + return Promise.all([t, r.miss(t)]); + }) + .then(function (t) { + return a(t, 1)[0]; + }); + }, + set: function (t, e) { + return Promise.resolve(e); + }, + delete: function (t) { + return Promise.resolve(); + }, + clear: function () { + return Promise.resolve(); + }, + } + : { + get: function (t, n) { + var a = + arguments.length > 2 && void 0 !== arguments[2] + ? arguments[2] + : { + miss: function () { + return Promise.resolve(); + }, + }; + return r.get(t, n, a).catch(function () { + return u({ caches: e }).get(t, n, a); + }); + }, + set: function (t, n) { + return r.set(t, n).catch(function () { + return u({ caches: e }).set(t, n); + }); + }, + delete: function (t) { + return r.delete(t).catch(function () { + return u({ caches: e }).delete(t); + }); + }, + clear: function () { + return r.clear().catch(function () { + return u({ caches: e }).clear(); + }); + }, + }; + } + function s() { + var t = + arguments.length > 0 && void 0 !== arguments[0] + ? arguments[0] + : { serializable: !0 }, + e = {}; + return { + get: function (r, n) { + var a = + arguments.length > 2 && void 0 !== arguments[2] + ? arguments[2] + : { + miss: function () { + return Promise.resolve(); + }, + }, + o = JSON.stringify(r); + if (o in e) + return Promise.resolve(t.serializable ? JSON.parse(e[o]) : e[o]); + var i = n(), + u = + (a && a.miss) || + function () { + return Promise.resolve(); + }; + return i + .then(function (t) { + return u(t); + }) + .then(function () { + return i; + }); + }, + set: function (r, n) { + return ( + (e[JSON.stringify(r)] = t.serializable ? JSON.stringify(n) : n), + Promise.resolve(n) + ); + }, + delete: function (t) { + return delete e[JSON.stringify(t)], Promise.resolve(); + }, + clear: function () { + return (e = {}), Promise.resolve(); + }, + }; + } + function c(t, e, r) { + var n = { "x-algolia-api-key": r, "x-algolia-application-id": e }; + return { + headers: function () { + return t === m.WithinHeaders ? n : {}; + }, + queryParameters: function () { + return t === m.WithinQueryParameters ? n : {}; + }, + }; + } + function f(t) { + var e = 0; + return t(function r() { + return ( + e++, + new Promise(function (n) { + setTimeout( + function () { + n(t(r)); + }, + Math.min(100 * e, 1e3), + ); + }) + ); + }); + } + function d(t) { + var e = + arguments.length > 1 && void 0 !== arguments[1] + ? arguments[1] + : function (t, e) { + return Promise.resolve(); + }; + return Object.assign(t, { + wait: function (r) { + return d( + t + .then(function (t) { + return Promise.all([e(t, r), t]); + }) + .then(function (t) { + return t[1]; + }), + ); + }, + }); + } + function l(t) { + for (var e = t.length - 1; e > 0; e--) { + var r = Math.floor(Math.random() * (e + 1)), + n = t[e]; + (t[e] = t[r]), (t[r] = n); + } + return t; + } + function p(t, e) { + return e + ? (Object.keys(e).forEach(function (r) { + t[r] = e[r](t); + }), + t) + : t; + } + function h(t) { + for ( + var e = arguments.length, r = new Array(e > 1 ? e - 1 : 0), n = 1; + n < e; + n++ + ) + r[n - 1] = arguments[n]; + var a = 0; + return t.replace(/%s/g, function () { + return encodeURIComponent(r[a++]); + }); + } + var m = { WithinQueryParameters: 0, WithinHeaders: 1 }; + function y(t, e) { + var r = t || {}, + n = r.data || {}; + return ( + Object.keys(r).forEach(function (t) { + -1 === + [ + "timeout", + "headers", + "queryParameters", + "data", + "cacheable", + ].indexOf(t) && (n[t] = r[t]); + }), + { + data: Object.entries(n).length > 0 ? n : void 0, + timeout: r.timeout || e, + headers: r.headers || {}, + queryParameters: r.queryParameters || {}, + cacheable: r.cacheable, + } + ); + } + var g = { Read: 1, Write: 2, Any: 3 }, + v = 1, + b = 2, + P = 3; + function w(t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : v; + return r(r({}, t), {}, { status: e, lastUpdate: Date.now() }); + } + function O(t) { + return "string" == typeof t + ? { protocol: "https", url: t, accept: g.Any } + : { + protocol: t.protocol || "https", + url: t.url, + accept: t.accept || g.Any, + }; + } + var I = "DELETE", + x = "GET", + j = "POST", + D = "PUT"; + function q(t, e) { + return Promise.all( + e.map(function (e) { + return t.get(e, function () { + return Promise.resolve(w(e)); + }); + }), + ).then(function (t) { + var r = t.filter(function (t) { + return (function (t) { + return t.status === v || Date.now() - t.lastUpdate > 12e4; + })(t); + }), + n = t.filter(function (t) { + return (function (t) { + return t.status === P && Date.now() - t.lastUpdate <= 12e4; + })(t); + }), + a = [].concat(o(r), o(n)); + return { + getTimeout: function (t, e) { + return (0 === n.length && 0 === t ? 1 : n.length + 3 + t) * e; + }, + statelessHosts: + a.length > 0 + ? a.map(function (t) { + return O(t); + }) + : e, + }; + }); + } + function S(t, e, n, a) { + var i = [], + u = (function (t, e) { + if (t.method === x || (void 0 === t.data && void 0 === e.data)) return; + var n = Array.isArray(t.data) ? t.data : r(r({}, t.data), e.data); + return JSON.stringify(n); + })(n, a), + s = (function (t, e) { + var n = r(r({}, t.headers), e.headers), + a = {}; + return ( + Object.keys(n).forEach(function (t) { + var e = n[t]; + a[t.toLowerCase()] = e; + }), + a + ); + })(t, a), + c = n.method, + f = n.method !== x ? {} : r(r({}, n.data), a.data), + d = r( + r(r({ "x-algolia-agent": t.userAgent.value }, t.queryParameters), f), + a.queryParameters, + ), + l = 0, + p = function e(r, o) { + var f = r.pop(); + if (void 0 === f) + throw { + name: "RetryError", + message: + "Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.", + transporterStackTrace: R(i), + }; + var p = { + data: u, + headers: s, + method: c, + url: N(f, n.path, d), + connectTimeout: o(l, t.timeouts.connect), + responseTimeout: o(l, a.timeout), + }, + h = function (t) { + var e = { request: p, response: t, host: f, triesLeft: r.length }; + return i.push(e), e; + }, + m = { + onSuccess: function (t) { + return (function (t) { + try { + return JSON.parse(t.content); + } catch (e) { + throw (function (t, e) { + return { + name: "DeserializationError", + message: t, + response: e, + }; + })(e.message, t); + } + })(t); + }, + onRetry: function (n) { + var a = h(n); + return ( + n.isTimedOut && l++, + Promise.all([ + t.logger.info("Retryable failure", A(a)), + t.hostsCache.set(f, w(f, n.isTimedOut ? P : b)), + ]).then(function () { + return e(r, o); + }) + ); + }, + onFail: function (t) { + throw ( + (h(t), + (function (t, e) { + var r = t.content, + n = t.status, + a = r; + try { + a = JSON.parse(r).message; + } catch (t) {} + return (function (t, e, r) { + return { + name: "ApiError", + message: t, + status: e, + transporterStackTrace: r, + }; + })(a, n, e); + })(t, R(i))) + ); + }, + }; + return t.requester.send(p).then(function (t) { + return (function (t, e) { + return (function (t) { + var e = t.status; + return ( + t.isTimedOut || + (function (t) { + var e = t.isTimedOut, + r = t.status; + return !e && 0 == ~~r; + })(t) || + (2 != ~~(e / 100) && 4 != ~~(e / 100)) + ); + })(t) + ? e.onRetry(t) + : 2 == ~~(t.status / 100) + ? e.onSuccess(t) + : e.onFail(t); + })(t, m); + }); + }; + return q(t.hostsCache, e).then(function (t) { + return p(o(t.statelessHosts).reverse(), t.getTimeout); + }); + } + function k(t) { + var e = t.hostsCache, + r = t.logger, + n = t.requester, + o = t.requestsCache, + i = t.responsesCache, + u = t.timeouts, + s = t.userAgent, + c = t.hosts, + f = t.queryParameters, + d = { + hostsCache: e, + logger: r, + requester: n, + requestsCache: o, + responsesCache: i, + timeouts: u, + userAgent: s, + headers: t.headers, + queryParameters: f, + hosts: c.map(function (t) { + return O(t); + }), + read: function (t, e) { + var r = y(e, d.timeouts.read), + n = function () { + return S( + d, + d.hosts.filter(function (t) { + return 0 != (t.accept & g.Read); + }), + t, + r, + ); + }; + if (!0 !== (void 0 !== r.cacheable ? r.cacheable : t.cacheable)) + return n(); + var o = { + request: t, + mappedRequestOptions: r, + transporter: { + queryParameters: d.queryParameters, + headers: d.headers, + }, + }; + return d.responsesCache.get( + o, + function () { + return d.requestsCache.get(o, function () { + return d.requestsCache + .set(o, n()) + .then( + function (t) { + return Promise.all([d.requestsCache.delete(o), t]); + }, + function (t) { + return Promise.all([ + d.requestsCache.delete(o), + Promise.reject(t), + ]); + }, + ) + .then(function (t) { + var e = a(t, 2); + e[0]; + return e[1]; + }); + }); + }, + { + miss: function (t) { + return d.responsesCache.set(o, t); + }, + }, + ); + }, + write: function (t, e) { + return S( + d, + d.hosts.filter(function (t) { + return 0 != (t.accept & g.Write); + }), + t, + y(e, d.timeouts.write), + ); + }, + }; + return d; + } + function T(t) { + var e = { + value: "Algolia for JavaScript (".concat(t, ")"), + add: function (t) { + var r = "; " + .concat(t.segment) + .concat(void 0 !== t.version ? " (".concat(t.version, ")") : ""); + return ( + -1 === e.value.indexOf(r) && (e.value = "".concat(e.value).concat(r)), + e + ); + }, + }; + return e; + } + function N(t, e, r) { + var n = E(r), + a = "" + .concat(t.protocol, "://") + .concat(t.url, "/") + .concat("/" === e.charAt(0) ? e.substr(1) : e); + return n.length && (a += "?".concat(n)), a; + } + function E(t) { + return Object.keys(t) + .map(function (e) { + return h( + "%s=%s", + e, + ((r = t[e]), + "[object Object]" === Object.prototype.toString.call(r) || + "[object Array]" === Object.prototype.toString.call(r) + ? JSON.stringify(t[e]) + : t[e]), + ); + var r; + }) + .join("&"); + } + function R(t) { + return t.map(function (t) { + return A(t); + }); + } + function A(t) { + var e = t.request.headers["x-algolia-api-key"] + ? { "x-algolia-api-key": "*****" } + : {}; + return r( + r({}, t), + {}, + { + request: r( + r({}, t.request), + {}, + { headers: r(r({}, t.request.headers), e) }, + ), + }, + ); + } + var C = function (t) { + return function (e, r) { + return t.transporter.write( + { method: j, path: "2/abtests", data: e }, + r, + ); + }; + }, + U = function (t) { + return function (e, r) { + return t.transporter.write( + { method: I, path: h("2/abtests/%s", e) }, + r, + ); + }; + }, + z = function (t) { + return function (e, r) { + return t.transporter.read({ method: x, path: h("2/abtests/%s", e) }, r); + }; + }, + J = function (t) { + return function (e) { + return t.transporter.read({ method: x, path: "2/abtests" }, e); + }; + }, + F = function (t) { + return function (e, r) { + return t.transporter.write( + { method: j, path: h("2/abtests/%s/stop", e) }, + r, + ); + }; + }, + H = function (t) { + return function (e) { + return t.transporter.read( + { method: x, path: "1/strategies/personalization" }, + e, + ); + }; + }, + M = function (t) { + return function (e, r) { + return t.transporter.write( + { method: j, path: "1/strategies/personalization", data: e }, + r, + ); + }; + }; + function K(t) { + return (function e(r) { + return t.request(r).then(function (n) { + if ((void 0 !== t.batch && t.batch(n.hits), !t.shouldStop(n))) + return n.cursor + ? e({ cursor: n.cursor }) + : e({ page: (r.page || 0) + 1 }); + }); + })({}); + } + var W = function (t) { + return function (e, a) { + var o = a || {}, + i = o.queryParameters, + u = n(o, ["queryParameters"]), + s = r({ acl: e }, void 0 !== i ? { queryParameters: i } : {}); + return d( + t.transporter.write({ method: j, path: "1/keys", data: s }, u), + function (e, r) { + return f(function (n) { + return tt(t)(e.key, r).catch(function (t) { + if (404 !== t.status) throw t; + return n(); + }); + }); + }, + ); + }; + }, + B = function (t) { + return function (e, r, n) { + var a = y(n); + return ( + (a.queryParameters["X-Algolia-User-ID"] = e), + t.transporter.write( + { method: j, path: "1/clusters/mapping", data: { cluster: r } }, + a, + ) + ); + }; + }, + Q = function (t) { + return function (e, r, n) { + return t.transporter.write( + { + method: j, + path: "1/clusters/mapping/batch", + data: { users: e, cluster: r }, + }, + n, + ); + }; + }, + G = function (t) { + return function (e, r) { + return d( + t.transporter.write( + { + method: j, + path: h("/1/dictionaries/%s/batch", e), + data: { + clearExistingDictionaryEntries: !0, + requests: { action: "addEntry", body: [] }, + }, + }, + r, + ), + function (e, r) { + return jt(t)(e.taskID, r); + }, + ); + }; + }, + L = function (t) { + return function (e, r, n) { + return d( + t.transporter.write( + { + method: j, + path: h("1/indexes/%s/operation", e), + data: { operation: "copy", destination: r }, + }, + n, + ), + function (r, n) { + return ut(t)(e, { methods: { waitTask: de } }).waitTask( + r.taskID, + n, + ); + }, + ); + }; + }, + V = function (t) { + return function (e, n, a) { + return L(t)(e, n, r(r({}, a), {}, { scope: [pe.Rules] })); + }; + }, + _ = function (t) { + return function (e, n, a) { + return L(t)(e, n, r(r({}, a), {}, { scope: [pe.Settings] })); + }; + }, + X = function (t) { + return function (e, n, a) { + return L(t)(e, n, r(r({}, a), {}, { scope: [pe.Synonyms] })); + }; + }, + Y = function (t) { + return function (e, r) { + return e.method === x + ? t.transporter.read(e, r) + : t.transporter.write(e, r); + }; + }, + Z = function (t) { + return function (e, r) { + return d( + t.transporter.write({ method: I, path: h("1/keys/%s", e) }, r), + function (r, n) { + return f(function (r) { + return tt(t)(e, n) + .then(r) + .catch(function (t) { + if (404 !== t.status) throw t; + }); + }); + }, + ); + }; + }, + $ = function (t) { + return function (e, r, n) { + var a = r.map(function (t) { + return { action: "deleteEntry", body: { objectID: t } }; + }); + return d( + t.transporter.write( + { + method: j, + path: h("/1/dictionaries/%s/batch", e), + data: { clearExistingDictionaryEntries: !1, requests: a }, + }, + n, + ), + function (e, r) { + return jt(t)(e.taskID, r); + }, + ); + }; + }, + tt = function (t) { + return function (e, r) { + return t.transporter.read({ method: x, path: h("1/keys/%s", e) }, r); + }; + }, + et = function (t) { + return function (e, r) { + return t.transporter.read( + { method: x, path: h("1/task/%s", e.toString()) }, + r, + ); + }; + }, + rt = function (t) { + return function (e) { + return t.transporter.read( + { method: x, path: "/1/dictionaries/*/settings" }, + e, + ); + }; + }, + nt = function (t) { + return function (e) { + return t.transporter.read({ method: x, path: "1/logs" }, e); + }; + }, + at = function (t) { + return function (e) { + return t.transporter.read( + { method: x, path: "1/clusters/mapping/top" }, + e, + ); + }; + }, + ot = function (t) { + return function (e, r) { + return t.transporter.read( + { method: x, path: h("1/clusters/mapping/%s", e) }, + r, + ); + }; + }, + it = function (t) { + return function (e) { + var r = e || {}, + a = r.retrieveMappings, + o = n(r, ["retrieveMappings"]); + return ( + !0 === a && (o.getClusters = !0), + t.transporter.read( + { method: x, path: "1/clusters/mapping/pending" }, + o, + ) + ); + }; + }, + ut = function (t) { + return function (e) { + var r = + arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = { transporter: t.transporter, appId: t.appId, indexName: e }; + return p(n, r.methods); + }; + }, + st = function (t) { + return function (e) { + return t.transporter.read({ method: x, path: "1/keys" }, e); + }; + }, + ct = function (t) { + return function (e) { + return t.transporter.read({ method: x, path: "1/clusters" }, e); + }; + }, + ft = function (t) { + return function (e) { + return t.transporter.read({ method: x, path: "1/indexes" }, e); + }; + }, + dt = function (t) { + return function (e) { + return t.transporter.read({ method: x, path: "1/clusters/mapping" }, e); + }; + }, + lt = function (t) { + return function (e, r, n) { + return d( + t.transporter.write( + { + method: j, + path: h("1/indexes/%s/operation", e), + data: { operation: "move", destination: r }, + }, + n, + ), + function (r, n) { + return ut(t)(e, { methods: { waitTask: de } }).waitTask( + r.taskID, + n, + ); + }, + ); + }; + }, + pt = function (t) { + return function (e, r) { + return d( + t.transporter.write( + { method: j, path: "1/indexes/*/batch", data: { requests: e } }, + r, + ), + function (e, r) { + return Promise.all( + Object.keys(e.taskID).map(function (n) { + return ut(t)(n, { methods: { waitTask: de } }).waitTask( + e.taskID[n], + r, + ); + }), + ); + }, + ); + }; + }, + ht = function (t) { + return function (e, r) { + return t.transporter.read( + { method: j, path: "1/indexes/*/objects", data: { requests: e } }, + r, + ); + }; + }, + mt = function (t) { + return function (e, n) { + var a = e.map(function (t) { + return r(r({}, t), {}, { params: E(t.params || {}) }); + }); + return t.transporter.read( + { + method: j, + path: "1/indexes/*/queries", + data: { requests: a }, + cacheable: !0, + }, + n, + ); + }; + }, + yt = function (t) { + return function (e, a) { + return Promise.all( + e.map(function (e) { + var o = e.params, + i = o.facetName, + u = o.facetQuery, + s = n(o, ["facetName", "facetQuery"]); + return ut(t)(e.indexName, { + methods: { searchForFacetValues: ue }, + }).searchForFacetValues(i, u, r(r({}, a), s)); + }), + ); + }; + }, + gt = function (t) { + return function (e, r) { + var n = y(r); + return ( + (n.queryParameters["X-Algolia-User-ID"] = e), + t.transporter.write({ method: I, path: "1/clusters/mapping" }, n) + ); + }; + }, + vt = function (t) { + return function (e, r, n) { + var a = r.map(function (t) { + return { action: "addEntry", body: t }; + }); + return d( + t.transporter.write( + { + method: j, + path: h("/1/dictionaries/%s/batch", e), + data: { clearExistingDictionaryEntries: !0, requests: a }, + }, + n, + ), + function (e, r) { + return jt(t)(e.taskID, r); + }, + ); + }; + }, + bt = function (t) { + return function (e, r) { + return d( + t.transporter.write( + { method: j, path: h("1/keys/%s/restore", e) }, + r, + ), + function (r, n) { + return f(function (r) { + return tt(t)(e, n).catch(function (t) { + if (404 !== t.status) throw t; + return r(); + }); + }); + }, + ); + }; + }, + Pt = function (t) { + return function (e, r, n) { + var a = r.map(function (t) { + return { action: "addEntry", body: t }; + }); + return d( + t.transporter.write( + { + method: j, + path: h("/1/dictionaries/%s/batch", e), + data: { clearExistingDictionaryEntries: !1, requests: a }, + }, + n, + ), + function (e, r) { + return jt(t)(e.taskID, r); + }, + ); + }; + }, + wt = function (t) { + return function (e, r, n) { + return t.transporter.read( + { + method: j, + path: h("/1/dictionaries/%s/search", e), + data: { query: r }, + cacheable: !0, + }, + n, + ); + }; + }, + Ot = function (t) { + return function (e, r) { + return t.transporter.read( + { method: j, path: "1/clusters/mapping/search", data: { query: e } }, + r, + ); + }; + }, + It = function (t) { + return function (e, r) { + return d( + t.transporter.write( + { method: D, path: "/1/dictionaries/*/settings", data: e }, + r, + ), + function (e, r) { + return jt(t)(e.taskID, r); + }, + ); + }; + }, + xt = function (t) { + return function (e, r) { + var a = Object.assign({}, r), + o = r || {}, + i = o.queryParameters, + u = n(o, ["queryParameters"]), + s = i ? { queryParameters: i } : {}, + c = [ + "acl", + "indexes", + "referers", + "restrictSources", + "queryParameters", + "description", + "maxQueriesPerIPPerHour", + "maxHitsPerQuery", + ]; + return d( + t.transporter.write( + { method: D, path: h("1/keys/%s", e), data: s }, + u, + ), + function (r, n) { + return f(function (r) { + return tt(t)(e, n).then(function (t) { + return (function (t) { + return Object.keys(a) + .filter(function (t) { + return -1 !== c.indexOf(t); + }) + .every(function (e) { + return t[e] === a[e]; + }); + })(t) + ? Promise.resolve() + : r(); + }); + }); + }, + ); + }; + }, + jt = function (t) { + return function (e, r) { + return f(function (n) { + return et(t)(e, r).then(function (t) { + return "published" !== t.status ? n() : void 0; + }); + }); + }; + }, + Dt = function (t) { + return function (e, r) { + return d( + t.transporter.write( + { + method: j, + path: h("1/indexes/%s/batch", t.indexName), + data: { requests: e }, + }, + r, + ), + function (e, r) { + return de(t)(e.taskID, r); + }, + ); + }; + }, + qt = function (t) { + return function (e) { + return K( + r( + r( + { + shouldStop: function (t) { + return void 0 === t.cursor; + }, + }, + e, + ), + {}, + { + request: function (r) { + return t.transporter.read( + { + method: j, + path: h("1/indexes/%s/browse", t.indexName), + data: r, + }, + e, + ); + }, + }, + ), + ); + }; + }, + St = function (t) { + return function (e) { + var n = r({ hitsPerPage: 1e3 }, e); + return K( + r( + r( + { + shouldStop: function (t) { + return t.hits.length < n.hitsPerPage; + }, + }, + n, + ), + {}, + { + request: function (e) { + return se(t)("", r(r({}, n), e)).then(function (t) { + return r( + r({}, t), + {}, + { + hits: t.hits.map(function (t) { + return delete t._highlightResult, t; + }), + }, + ); + }); + }, + }, + ), + ); + }; + }, + kt = function (t) { + return function (e) { + var n = r({ hitsPerPage: 1e3 }, e); + return K( + r( + r( + { + shouldStop: function (t) { + return t.hits.length < n.hitsPerPage; + }, + }, + n, + ), + {}, + { + request: function (e) { + return ce(t)("", r(r({}, n), e)).then(function (t) { + return r( + r({}, t), + {}, + { + hits: t.hits.map(function (t) { + return delete t._highlightResult, t; + }), + }, + ); + }); + }, + }, + ), + ); + }; + }, + Tt = function (t) { + return function (e, r, a) { + var o = a || {}, + i = o.batchSize, + u = n(o, ["batchSize"]), + s = { taskIDs: [], objectIDs: [] }; + return d( + (function n() { + var a, + o = + arguments.length > 0 && void 0 !== arguments[0] + ? arguments[0] + : 0, + c = []; + for ( + a = o; + a < e.length && (c.push(e[a]), c.length !== (i || 1e3)); + a++ + ); + return 0 === c.length + ? Promise.resolve(s) + : Dt(t)( + c.map(function (t) { + return { action: r, body: t }; + }), + u, + ).then(function (t) { + return ( + (s.objectIDs = s.objectIDs.concat(t.objectIDs)), + s.taskIDs.push(t.taskID), + a++, + n(a) + ); + }); + })(), + function (e, r) { + return Promise.all( + e.taskIDs.map(function (e) { + return de(t)(e, r); + }), + ); + }, + ); + }; + }, + Nt = function (t) { + return function (e) { + return d( + t.transporter.write( + { method: j, path: h("1/indexes/%s/clear", t.indexName) }, + e, + ), + function (e, r) { + return de(t)(e.taskID, r); + }, + ); + }; + }, + Et = function (t) { + return function (e) { + var r = e || {}, + a = r.forwardToReplicas, + o = y(n(r, ["forwardToReplicas"])); + return ( + a && (o.queryParameters.forwardToReplicas = 1), + d( + t.transporter.write( + { method: j, path: h("1/indexes/%s/rules/clear", t.indexName) }, + o, + ), + function (e, r) { + return de(t)(e.taskID, r); + }, + ) + ); + }; + }, + Rt = function (t) { + return function (e) { + var r = e || {}, + a = r.forwardToReplicas, + o = y(n(r, ["forwardToReplicas"])); + return ( + a && (o.queryParameters.forwardToReplicas = 1), + d( + t.transporter.write( + { + method: j, + path: h("1/indexes/%s/synonyms/clear", t.indexName), + }, + o, + ), + function (e, r) { + return de(t)(e.taskID, r); + }, + ) + ); + }; + }, + At = function (t) { + return function (e, r) { + return d( + t.transporter.write( + { + method: j, + path: h("1/indexes/%s/deleteByQuery", t.indexName), + data: e, + }, + r, + ), + function (e, r) { + return de(t)(e.taskID, r); + }, + ); + }; + }, + Ct = function (t) { + return function (e) { + return d( + t.transporter.write( + { method: I, path: h("1/indexes/%s", t.indexName) }, + e, + ), + function (e, r) { + return de(t)(e.taskID, r); + }, + ); + }; + }, + Ut = function (t) { + return function (e, r) { + return d( + zt(t)([e], r).then(function (t) { + return { taskID: t.taskIDs[0] }; + }), + function (e, r) { + return de(t)(e.taskID, r); + }, + ); + }; + }, + zt = function (t) { + return function (e, r) { + var n = e.map(function (t) { + return { objectID: t }; + }); + return Tt(t)(n, le.DeleteObject, r); + }; + }, + Jt = function (t) { + return function (e, r) { + var a = r || {}, + o = a.forwardToReplicas, + i = y(n(a, ["forwardToReplicas"])); + return ( + o && (i.queryParameters.forwardToReplicas = 1), + d( + t.transporter.write( + { method: I, path: h("1/indexes/%s/rules/%s", t.indexName, e) }, + i, + ), + function (e, r) { + return de(t)(e.taskID, r); + }, + ) + ); + }; + }, + Ft = function (t) { + return function (e, r) { + var a = r || {}, + o = a.forwardToReplicas, + i = y(n(a, ["forwardToReplicas"])); + return ( + o && (i.queryParameters.forwardToReplicas = 1), + d( + t.transporter.write( + { + method: I, + path: h("1/indexes/%s/synonyms/%s", t.indexName, e), + }, + i, + ), + function (e, r) { + return de(t)(e.taskID, r); + }, + ) + ); + }; + }, + Ht = function (t) { + return function (e) { + return Lt(t)(e) + .then(function () { + return !0; + }) + .catch(function (t) { + if (404 !== t.status) throw t; + return !1; + }); + }; + }, + Mt = function (t) { + return function (e, r, n) { + return t.transporter.read( + { + method: j, + path: h("1/answers/%s/prediction", t.indexName), + data: { query: e, queryLanguages: r }, + cacheable: !0, + }, + n, + ); + }; + }, + Kt = function (t) { + return function (e, o) { + var i = o || {}, + u = i.query, + s = i.paginate, + c = n(i, ["query", "paginate"]), + f = 0; + return (function n() { + return ie(t)(u || "", r(r({}, c), {}, { page: f })).then( + function (t) { + for (var r = 0, o = Object.entries(t.hits); r < o.length; r++) { + var i = a(o[r], 2), + u = i[0], + c = i[1]; + if (e(c)) + return { object: c, position: parseInt(u, 10), page: f }; + } + if ((f++, !1 === s || f >= t.nbPages)) + throw { + name: "ObjectNotFoundError", + message: "Object not found.", + }; + return n(); + }, + ); + })(); + }; + }, + Wt = function (t) { + return function (e, r) { + return t.transporter.read( + { method: x, path: h("1/indexes/%s/%s", t.indexName, e) }, + r, + ); + }; + }, + Bt = function () { + return function (t, e) { + for (var r = 0, n = Object.entries(t.hits); r < n.length; r++) { + var o = a(n[r], 2), + i = o[0]; + if (o[1].objectID === e) return parseInt(i, 10); + } + return -1; + }; + }, + Qt = function (t) { + return function (e, a) { + var o = a || {}, + i = o.attributesToRetrieve, + u = n(o, ["attributesToRetrieve"]), + s = e.map(function (e) { + return r( + { indexName: t.indexName, objectID: e }, + i ? { attributesToRetrieve: i } : {}, + ); + }); + return t.transporter.read( + { method: j, path: "1/indexes/*/objects", data: { requests: s } }, + u, + ); + }; + }, + Gt = function (t) { + return function (e, r) { + return t.transporter.read( + { method: x, path: h("1/indexes/%s/rules/%s", t.indexName, e) }, + r, + ); + }; + }, + Lt = function (t) { + return function (e) { + return t.transporter.read( + { + method: x, + path: h("1/indexes/%s/settings", t.indexName), + data: { getVersion: 2 }, + }, + e, + ); + }; + }, + Vt = function (t) { + return function (e, r) { + return t.transporter.read( + { method: x, path: h("1/indexes/%s/synonyms/%s", t.indexName, e) }, + r, + ); + }; + }, + _t = function (t) { + return function (e, r) { + return d( + Xt(t)([e], r).then(function (t) { + return { objectID: t.objectIDs[0], taskID: t.taskIDs[0] }; + }), + function (e, r) { + return de(t)(e.taskID, r); + }, + ); + }; + }, + Xt = function (t) { + return function (e, r) { + var a = r || {}, + o = a.createIfNotExists, + i = n(a, ["createIfNotExists"]), + u = o ? le.PartialUpdateObject : le.PartialUpdateObjectNoCreate; + return Tt(t)(e, u, i); + }; + }, + Yt = function (t) { + return function (e, i) { + var u = i || {}, + s = u.safe, + c = u.autoGenerateObjectIDIfNotExist, + f = u.batchSize, + l = n(u, ["safe", "autoGenerateObjectIDIfNotExist", "batchSize"]), + p = function (e, r, n, a) { + return d( + t.transporter.write( + { + method: j, + path: h("1/indexes/%s/operation", e), + data: { operation: n, destination: r }, + }, + a, + ), + function (e, r) { + return de(t)(e.taskID, r); + }, + ); + }, + m = Math.random().toString(36).substring(7), + y = "".concat(t.indexName, "_tmp_").concat(m), + g = ee({ appId: t.appId, transporter: t.transporter, indexName: y }), + v = [], + b = p( + t.indexName, + y, + "copy", + r(r({}, l), {}, { scope: ["settings", "synonyms", "rules"] }), + ); + return ( + v.push(b), + d( + (s ? b.wait(l) : b) + .then(function () { + var t = g( + e, + r( + r({}, l), + {}, + { autoGenerateObjectIDIfNotExist: c, batchSize: f }, + ), + ); + return v.push(t), s ? t.wait(l) : t; + }) + .then(function () { + var e = p(y, t.indexName, "move", l); + return v.push(e), s ? e.wait(l) : e; + }) + .then(function () { + return Promise.all(v); + }) + .then(function (t) { + var e = a(t, 3), + r = e[0], + n = e[1], + i = e[2]; + return { + objectIDs: n.objectIDs, + taskIDs: [r.taskID].concat(o(n.taskIDs), [i.taskID]), + }; + }), + function (t, e) { + return Promise.all( + v.map(function (t) { + return t.wait(e); + }), + ); + }, + ) + ); + }; + }, + Zt = function (t) { + return function (e, n) { + return ne(t)(e, r(r({}, n), {}, { clearExistingRules: !0 })); + }; + }, + $t = function (t) { + return function (e, n) { + return oe(t)(e, r(r({}, n), {}, { clearExistingSynonyms: !0 })); + }; + }, + te = function (t) { + return function (e, r) { + return d( + ee(t)([e], r).then(function (t) { + return { objectID: t.objectIDs[0], taskID: t.taskIDs[0] }; + }), + function (e, r) { + return de(t)(e.taskID, r); + }, + ); + }; + }, + ee = function (t) { + return function (e, r) { + var a = r || {}, + o = a.autoGenerateObjectIDIfNotExist, + i = n(a, ["autoGenerateObjectIDIfNotExist"]), + u = o ? le.AddObject : le.UpdateObject; + if (u === le.UpdateObject) { + var s = !0, + c = !1, + f = void 0; + try { + for ( + var l, p = e[Symbol.iterator](); + !(s = (l = p.next()).done); + s = !0 + ) { + if (void 0 === l.value.objectID) + return d( + Promise.reject({ + name: "MissingObjectIDError", + message: + "All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option.", + }), + ); + } + } catch (t) { + (c = !0), (f = t); + } finally { + try { + s || null == p.return || p.return(); + } finally { + if (c) throw f; + } + } + } + return Tt(t)(e, u, i); + }; + }, + re = function (t) { + return function (e, r) { + return ne(t)([e], r); + }; + }, + ne = function (t) { + return function (e, r) { + var a = r || {}, + o = a.forwardToReplicas, + i = a.clearExistingRules, + u = y(n(a, ["forwardToReplicas", "clearExistingRules"])); + return ( + o && (u.queryParameters.forwardToReplicas = 1), + i && (u.queryParameters.clearExistingRules = 1), + d( + t.transporter.write( + { + method: j, + path: h("1/indexes/%s/rules/batch", t.indexName), + data: e, + }, + u, + ), + function (e, r) { + return de(t)(e.taskID, r); + }, + ) + ); + }; + }, + ae = function (t) { + return function (e, r) { + return oe(t)([e], r); + }; + }, + oe = function (t) { + return function (e, r) { + var a = r || {}, + o = a.forwardToReplicas, + i = a.clearExistingSynonyms, + u = a.replaceExistingSynonyms, + s = y( + n(a, [ + "forwardToReplicas", + "clearExistingSynonyms", + "replaceExistingSynonyms", + ]), + ); + return ( + o && (s.queryParameters.forwardToReplicas = 1), + (u || i) && (s.queryParameters.replaceExistingSynonyms = 1), + d( + t.transporter.write( + { + method: j, + path: h("1/indexes/%s/synonyms/batch", t.indexName), + data: e, + }, + s, + ), + function (e, r) { + return de(t)(e.taskID, r); + }, + ) + ); + }; + }, + ie = function (t) { + return function (e, r) { + return t.transporter.read( + { + method: j, + path: h("1/indexes/%s/query", t.indexName), + data: { query: e }, + cacheable: !0, + }, + r, + ); + }; + }, + ue = function (t) { + return function (e, r, n) { + return t.transporter.read( + { + method: j, + path: h("1/indexes/%s/facets/%s/query", t.indexName, e), + data: { facetQuery: r }, + cacheable: !0, + }, + n, + ); + }; + }, + se = function (t) { + return function (e, r) { + return t.transporter.read( + { + method: j, + path: h("1/indexes/%s/rules/search", t.indexName), + data: { query: e }, + }, + r, + ); + }; + }, + ce = function (t) { + return function (e, r) { + return t.transporter.read( + { + method: j, + path: h("1/indexes/%s/synonyms/search", t.indexName), + data: { query: e }, + }, + r, + ); + }; + }, + fe = function (t) { + return function (e, r) { + var a = r || {}, + o = a.forwardToReplicas, + i = y(n(a, ["forwardToReplicas"])); + return ( + o && (i.queryParameters.forwardToReplicas = 1), + d( + t.transporter.write( + { + method: D, + path: h("1/indexes/%s/settings", t.indexName), + data: e, + }, + i, + ), + function (e, r) { + return de(t)(e.taskID, r); + }, + ) + ); + }; + }, + de = function (t) { + return function (e, r) { + return f(function (n) { + return (function (t) { + return function (e, r) { + return t.transporter.read( + { + method: x, + path: h("1/indexes/%s/task/%s", t.indexName, e.toString()), + }, + r, + ); + }; + })(t)(e, r).then(function (t) { + return "published" !== t.status ? n() : void 0; + }); + }); + }; + }, + le = { + AddObject: "addObject", + UpdateObject: "updateObject", + PartialUpdateObject: "partialUpdateObject", + PartialUpdateObjectNoCreate: "partialUpdateObjectNoCreate", + DeleteObject: "deleteObject", + DeleteIndex: "delete", + ClearIndex: "clear", + }, + pe = { Settings: "settings", Synonyms: "synonyms", Rules: "rules" }, + he = 1, + me = 2, + ye = 3; + function ge(t, e, n) { + var a, + o = { + appId: t, + apiKey: e, + timeouts: { connect: 1, read: 2, write: 30 }, + requester: { + send: function (t) { + return new Promise(function (e) { + var r = new XMLHttpRequest(); + r.open(t.method, t.url, !0), + Object.keys(t.headers).forEach(function (e) { + return r.setRequestHeader(e, t.headers[e]); + }); + var n, + a = function (t, n) { + return setTimeout(function () { + r.abort(), e({ status: 0, content: n, isTimedOut: !0 }); + }, 1e3 * t); + }, + o = a(t.connectTimeout, "Connection timeout"); + (r.onreadystatechange = function () { + r.readyState > r.OPENED && + void 0 === n && + (clearTimeout(o), + (n = a(t.responseTimeout, "Socket timeout"))); + }), + (r.onerror = function () { + 0 === r.status && + (clearTimeout(o), + clearTimeout(n), + e({ + content: r.responseText || "Network request failed", + status: r.status, + isTimedOut: !1, + })); + }), + (r.onload = function () { + clearTimeout(o), + clearTimeout(n), + e({ + content: r.responseText, + status: r.status, + isTimedOut: !1, + }); + }), + r.send(t.data); + }); + }, + }, + logger: + ((a = ye), + { + debug: function (t, e) { + return he >= a && console.debug(t, e), Promise.resolve(); + }, + info: function (t, e) { + return me >= a && console.info(t, e), Promise.resolve(); + }, + error: function (t, e) { + return console.error(t, e), Promise.resolve(); + }, + }), + responsesCache: s(), + requestsCache: s({ serializable: !1 }), + hostsCache: u({ + caches: [i({ key: "".concat("4.17.0", "-").concat(t) }), s()], + }), + userAgent: T("4.17.0").add({ segment: "Browser" }), + }, + f = r(r({}, o), n), + d = function () { + return function (t) { + return (function (t) { + var e = t.region || "us", + n = c(m.WithinHeaders, t.appId, t.apiKey), + a = k( + r( + r( + { + hosts: [ + { url: "personalization.".concat(e, ".algolia.com") }, + ], + }, + t, + ), + {}, + { + headers: r( + r(r({}, n.headers()), { + "content-type": "application/json", + }), + t.headers, + ), + queryParameters: r( + r({}, n.queryParameters()), + t.queryParameters, + ), + }, + ), + ); + return p({ appId: t.appId, transporter: a }, t.methods); + })( + r( + r(r({}, o), t), + {}, + { + methods: { + getPersonalizationStrategy: H, + setPersonalizationStrategy: M, + }, + }, + ), + ); + }; + }; + return (function (t) { + var e = t.appId, + n = c( + void 0 !== t.authMode ? t.authMode : m.WithinHeaders, + e, + t.apiKey, + ), + a = k( + r( + r( + { + hosts: [ + { url: "".concat(e, "-dsn.algolia.net"), accept: g.Read }, + { url: "".concat(e, ".algolia.net"), accept: g.Write }, + ].concat( + l([ + { url: "".concat(e, "-1.algolianet.com") }, + { url: "".concat(e, "-2.algolianet.com") }, + { url: "".concat(e, "-3.algolianet.com") }, + ]), + ), + }, + t, + ), + {}, + { + headers: r( + r(r({}, n.headers()), { + "content-type": "application/x-www-form-urlencoded", + }), + t.headers, + ), + queryParameters: r(r({}, n.queryParameters()), t.queryParameters), + }, + ), + ); + return p( + { + transporter: a, + appId: e, + addAlgoliaAgent: function (t, e) { + a.userAgent.add({ segment: t, version: e }); + }, + clearCache: function () { + return Promise.all([ + a.requestsCache.clear(), + a.responsesCache.clear(), + ]).then(function () {}); + }, + }, + t.methods, + ); + })( + r( + r({}, f), + {}, + { + methods: { + search: mt, + searchForFacetValues: yt, + multipleBatch: pt, + multipleGetObjects: ht, + multipleQueries: mt, + copyIndex: L, + copySettings: _, + copySynonyms: X, + copyRules: V, + moveIndex: lt, + listIndices: ft, + getLogs: nt, + listClusters: ct, + multipleSearchForFacetValues: yt, + getApiKey: tt, + addApiKey: W, + listApiKeys: st, + updateApiKey: xt, + deleteApiKey: Z, + restoreApiKey: bt, + assignUserID: B, + assignUserIDs: Q, + getUserID: ot, + searchUserIDs: Ot, + listUserIDs: dt, + getTopUserIDs: at, + removeUserID: gt, + hasPendingMappings: it, + clearDictionaryEntries: G, + deleteDictionaryEntries: $, + getDictionarySettings: rt, + getAppTask: et, + replaceDictionaryEntries: vt, + saveDictionaryEntries: Pt, + searchDictionaryEntries: wt, + setDictionarySettings: It, + waitAppTask: jt, + customRequest: Y, + initIndex: function (t) { + return function (e) { + return ut(t)(e, { + methods: { + batch: Dt, + delete: Ct, + findAnswers: Mt, + getObject: Wt, + getObjects: Qt, + saveObject: te, + saveObjects: ee, + search: ie, + searchForFacetValues: ue, + waitTask: de, + setSettings: fe, + getSettings: Lt, + partialUpdateObject: _t, + partialUpdateObjects: Xt, + deleteObject: Ut, + deleteObjects: zt, + deleteBy: At, + clearObjects: Nt, + browseObjects: qt, + getObjectPosition: Bt, + findObject: Kt, + exists: Ht, + saveSynonym: ae, + saveSynonyms: oe, + getSynonym: Vt, + searchSynonyms: ce, + browseSynonyms: kt, + deleteSynonym: Ft, + clearSynonyms: Rt, + replaceAllObjects: Yt, + replaceAllSynonyms: $t, + searchRules: se, + getRule: Gt, + deleteRule: Jt, + saveRule: re, + saveRules: ne, + replaceAllRules: Zt, + browseRules: St, + clearRules: Et, + }, + }); + }; + }, + initAnalytics: function () { + return function (t) { + return (function (t) { + var e = t.region || "us", + n = c(m.WithinHeaders, t.appId, t.apiKey), + a = k( + r( + r( + { + hosts: [ + { url: "analytics.".concat(e, ".algolia.com") }, + ], + }, + t, + ), + {}, + { + headers: r( + r(r({}, n.headers()), { + "content-type": "application/json", + }), + t.headers, + ), + queryParameters: r( + r({}, n.queryParameters()), + t.queryParameters, + ), + }, + ), + ); + return p({ appId: t.appId, transporter: a }, t.methods); + })( + r( + r(r({}, o), t), + {}, + { + methods: { + addABTest: C, + getABTest: z, + getABTests: J, + stopABTest: F, + deleteABTest: U, + }, + }, + ), + ); + }; + }, + initPersonalization: d, + initRecommendation: function () { + return function (t) { + return ( + f.logger.info( + "The `initRecommendation` method is deprecated. Use `initPersonalization` instead.", + ), + d()(t) + ); + }; + }, + }, + }, + ), + ); + } + return (ge.version = "4.17.0"), ge; +}); diff --git a/themes/itheme/static/js/animation.js b/themes/itheme/static/js/animation.js new file mode 100644 index 0000000..f7bceb5 --- /dev/null +++ b/themes/itheme/static/js/animation.js @@ -0,0 +1,88 @@ +var animationElements = []; +var imageElements = []; +var animationElementName = ".small-load"; + + +// Hookable function +var loadAnimation = function (item) { + let img = new Image(); + img.src = item.children[0].children[0].dataset.src; + img.onload = function () { + item.classList.remove("small-load", "medium-load", "large-load"); + item.classList.add("small-loaded", "medium-loaded", "large-loaded"); + } +} + +// Hookable function +var loadImage = function (index) { + if (index >= imageElements.length) return; + let item = imageElements[index]; + let image = new Image(); + item.src = item.dataset.src; + image.src = item.src; + + // if the image is loaded, load the next image + image.onload = function () { + loadImage(index + 1); + } + // if the image is not loaded, load the next image + image.onerror = function () { + loadImage(index + 1); + } +} + + +function initImage() { + // get all the images with data-src attribute + imageElements = document.querySelectorAll('img[data-src]') + // load the images one by one + loadImage(0); + + + animationElements = document.querySelectorAll(animationElementName); + // load the images which are in the viewport + viewPortLoad(0); + const debouncedHandleScroll = debounce(lazyAnimation, 10); + // add the event listener + window.addEventListener('scroll', debouncedHandleScroll); +} + + +function viewPortLoad(index) { + if (index >= animationElements.length) return; + let item = animationElements[index]; + if (!isElementInView(item)) { + viewPortLoad(index + 1) + return; + }; + + loadAnimation(item) + viewPortLoad(index + 1); +} + + +function lazyAnimation() { + images = document.querySelectorAll(animationElementName); + viewPortLoad(0); +} + + +// check if the element is in the viewport +function isElementInView(element) { + const rect = element.getBoundingClientRect(); + const elementTop = rect.top; + const elementBottom = rect.bottom; + return (elementTop >= 0 && elementBottom - 200 <= window.innerHeight); +} + +function debounce(fn, delay) { + let timer = null; + return function () { + let context = this; + let args = arguments; + clearTimeout(timer); + timer = setTimeout(function () { + fn.apply(context, args); + }, delay); + }; +} diff --git a/themes/itheme/static/js/autocomplete-js.js b/themes/itheme/static/js/autocomplete-js.js new file mode 100644 index 0000000..f6cdbb2 --- /dev/null +++ b/themes/itheme/static/js/autocomplete-js.js @@ -0,0 +1,9 @@ +/** + * Skipped minification because the original files appears to be already minified. + * Original file: /npm/@algolia/autocomplete-js@1.8.3/dist/umd/index.production.js + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +/*! @algolia/autocomplete-js 1.8.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-js"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?t(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(){return a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}function i(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){u=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(u)throw o}}return a}(e,t)||l(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e){return{current:e}}function f(e,t){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];n&&clearTimeout(n),n=setTimeout((function(){return e.apply(void 0,o)}),t)}}function d(e){return e.reduce((function(e,t){return e.concat(t)}),[])}var v=0;function m(){return"autocomplete-".concat(v++)}function h(e,t){return t.reduce((function(e,t){return e&&e[t]}),e)}function g(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}var y=function(){},b="1.8.3",O=[{segment:"autocomplete-core",version:b}];function _(e,t){var n=t;return{then:function(t,r){return _(e.then(j(t,n,e),j(r,n,e)),n)},catch:function(t){return _(e.catch(j(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),_(e.finally(j(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function P(e){return _(e,{isCanceled:!1,onCancelList:[]})}function j(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function S(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function I(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){E(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function E(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,n){var r=(e[n-1]||0)+t;return e.push(r),e}),[]).reduce((function(t,n){return n<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var n=t.items[function(e){for(var t=e.state,n=e.collection,r=!1,o=0,a=0;!1===r;){var i=t.collections[o];if(i===n){r=!0;break}a+=i.items.length,o++}return t.activeItemId-a}({state:e,collection:t})],r=t.source;return{item:n,itemInputValue:r.getItemInputValue({item:n,state:e}),itemUrl:r.getItemUrl({item:n,state:e}),source:r}}var C=/((gt|sm)-|galaxy nexus)|samsung[- ]/i;function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D(Object(n),!0).forEach((function(t){x(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function R(e,t,n){var r,o=t.initialState;return{getState:function(){return o},dispatch:function(r,a){var i=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?q(Object(n),!0).forEach((function(t){N(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},o);o=e(o,{type:r,props:t,payload:a}),n({state:o,prevState:i})},pendingRequests:(r=[],{add:function(e){return r.push(e),e.finally((function(){r=r.filter((function(t){return t!==e}))}))},cancelAll:function(){r.forEach((function(e){return e.cancel()}))},isEmpty:function(){return 0===r.length}})}}function B(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function T(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?B(Object(n),!0).forEach((function(t){L(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):B(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function L(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function F(e){return function(e){if(Array.isArray(e))return M(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return M(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return M(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function M(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function U(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function H(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?U(Object(n),!0).forEach((function(t){V(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function V(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function W(e,t){var n,r="undefined"!=typeof window?window:{},o=e.plugins||[];return H(H({debug:!1,openOnFocus:!1,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,environment:r,shouldPanelOpen:function(e){return g(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:m(),plugins:o,initialState:H({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(F(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:y,onResolve:y};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=I(I({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return d(e)})).then((function(e){return e.map((function(e){return H(H({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:H({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function Q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Q(Object(n),!0).forEach((function(t){z(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Q(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function z(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function G(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?G(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):G(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function J(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Y(e){return function(e){if(Array.isArray(e))return X(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return X(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return X(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function X(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Z(e){return Boolean(e.execute)}function ee(e,t,n){if(o=e,Boolean(null==o?void 0:o.execute)){var r="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(Y(Object.keys(n.context).map((function(e){var t;return null===(t=n.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return K(K({},e),{},{requests:e.queries.map((function(n){return{query:"algolia"===e.requesterId?K(K({},n),{},{params:K(K({},r),n.params)}):n,sourceId:t,transformResponse:e.transformResponse}}))})}var o;return{items:e,sourceId:t}}function te(e){var t=e.reduce((function(e,t){if(!Z(t))return e.push(t),e;var n=t.searchClient,r=t.execute,o=t.requesterId,a=t.requests,i=e.find((function(e){return Z(t)&&Z(e)&&e.searchClient===n&&Boolean(o)&&e.requesterId===o}));if(i){var u;(u=i.items).push.apply(u,Y(a))}else{var c={execute:r,requesterId:o,items:a,searchClient:n};e.push(c)}return e}),[]).map((function(e){if(!Z(e))return Promise.resolve(e);var t=e,n=t.execute,r=t.items;return n({searchClient:t.searchClient,requests:r})}));return Promise.all(t).then((function(e){return d(e)}))}function ne(e,t,n){return t.map((function(t){var r=e.filter((function(e){return e.sourceId===t.sourceId})),o=r.map((function(e){return e.items})),a=r[0].transformResponse,i=a?a(function(e){var t=e.map((function(e){var t;return k(k({},e),{},{hits:null===(t=e.hits)||void 0===t?void 0:t.map((function(t){return k(k({},t),{},{__autocomplete_indexName:e.index,__autocomplete_queryID:e.queryID})}))})}));return{results:t,hits:t.map((function(e){return e.hits})).filter(Boolean),facetHits:t.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}}(o)):o;return t.onResolve({source:t,results:o,items:i,state:n.getState()}),i.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:i}}))}var re=["event","nextState","props","query","refresh","store"];function oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ae(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oe(Object(n),!0).forEach((function(t){ie(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ie(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ue(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ce,le,se,pe=null,fe=(ce=-1,le=-1,se=void 0,function(e){var t=++ce;return Promise.resolve(e).then((function(e){return se&&t<le?se:(le=t,se=e,e)}))});function de(e){var t=e.event,n=e.nextState,r=void 0===n?{}:n,o=e.props,a=e.query,i=e.refresh,u=e.store,c=ue(e,re);pe&&o.environment.clearTimeout(pe);var l=c.setCollections,s=c.setIsOpen,p=c.setQuery,f=c.setActiveItemId,v=c.setStatus;if(p(a),f(o.defaultActiveItemId),!a&&!1===o.openOnFocus){var m,h=u.getState().collections.map((function(e){return ae(ae({},e),{},{items:[]})}));v("idle"),l(h),s(null!==(m=r.isOpen)&&void 0!==m?m:o.shouldPanelOpen({state:u.getState()}));var g=P(fe(h).then((function(){return Promise.resolve()})));return u.pendingRequests.add(g)}v("loading"),pe=o.environment.setTimeout((function(){v("stalled")}),o.stallThreshold);var y=P(fe(o.getSources(ae({query:a,refresh:i,state:u.getState()},c)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(ae({query:a,refresh:i,state:u.getState()},c))).then((function(t){return ee(t,e.sourceId,u.getState())}))}))).then(te).then((function(t){return ne(t,e,u)})).then((function(e){return function(e){var t=e.collections,n=e.props,r=e.state,o=t.reduce((function(e,t){return $($({},e),{},z({},t.source.sourceId,$($({},t.source),{},{getItems:function(){return d(t.items)}})))}),{}),a=n.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:o,state:r}).sourcesBySourceId;return d(n.reshape({sourcesBySourceId:a,sources:Object.values(a),state:r})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:u.getState()})}))})))).then((function(e){var n;v("idle"),l(e);var p=o.shouldPanelOpen({state:u.getState()});s(null!==(n=r.isOpen)&&void 0!==n?n:o.openOnFocus&&!a&&p||p);var f=A(u.getState());if(null!==u.getState().activeItemId&&f){var d=f.item,m=f.itemInputValue,h=f.itemUrl,g=f.source;g.onActive(ae({event:t,item:d,itemInputValue:m,itemUrl:h,refresh:i,source:g,state:u.getState()},c))}})).finally((function(){v("idle"),pe&&o.environment.clearTimeout(pe)}));return u.pendingRequests.add(y)}var ve=["event","props","refresh","store"];function me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function he(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?me(Object(n),!0).forEach((function(t){ge(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):me(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ge(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ye(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var be=["props","refresh","store"],Oe=["inputElement","formElement","panelElement"],_e=["inputElement"],Pe=["inputElement","maxLength"],je=["sourceIndex"],Se=["sourceIndex"],we=["item","source","sourceIndex"];function Ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ee(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ie(Object(n),!0).forEach((function(t){Ae(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ie(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ae(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ce(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function De(e){var t=e.props,n=e.refresh,r=e.store,o=Ce(e,be),a=function(e,t){return void 0!==t?"".concat(e,"-").concat(t):e};return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,a=e.panelElement;function i(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,a].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return Ee({onTouchStart:i,onMouseDown:i,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},Ce(e,Oe))},getRootProps:function(e){return Ee({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){return e.inputElement,Ee({action:"",noValidate:!0,role:"search",onSubmit:function(a){var i;a.preventDefault(),t.onSubmit(Ee({event:a,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(i=e.inputElement)||void 0===i||i.blur()},onReset:function(a){var i;a.preventDefault(),t.onReset(Ee({event:a,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(i=e.inputElement)||void 0===i||i.focus()}},Ce(e,_e))},getLabelProps:function(e){var n=e||{},r=n.sourceIndex,o=Ce(n,je);return Ee({htmlFor:"".concat(a(t.id,r),"-input"),id:"".concat(a(t.id,r),"-label")},o)},getInputProps:function(e){var a;function i(e){(t.openOnFocus||Boolean(r.getState().query))&&de(Ee({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var u=e||{};u.inputElement;var c=u.maxLength,l=void 0===c?512:c,s=Ce(u,Pe),p=A(r.getState()),f=function(e){return Boolean(e&&e.match(C))}((null===(a=t.environment.navigator)||void 0===a?void 0:a.userAgent)||""),d=null!=p&&p.itemUrl&&!f?"go":"search";return Ee({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:d,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:"search",onChange:function(e){de(Ee({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,a=ye(e,ve);if("ArrowUp"===t.key||"ArrowDown"===t.key){var i=function(){var e=n.environment.document.getElementById("".concat(n.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},u=function(){var e=A(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,i=e.itemInputValue,u=e.itemUrl,c=e.source;c.onActive(he({event:t,item:n,itemInputValue:i,itemUrl:u,refresh:r,source:c,state:o.getState()},a))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?de(he({event:t,props:n,query:o.getState().query,refresh:r,store:o},a)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),u(),setTimeout(i,0)})):(o.dispatch(t.key,{}),u(),i())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var c=A(o.getState()),l=c.item,s=c.itemInputValue,p=c.itemUrl,f=c.source;if(t.metaKey||t.ctrlKey)void 0!==p&&(f.onSelect(he({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},a)),n.navigator.navigateNewTab({itemUrl:p,item:l,state:o.getState()}));else if(t.shiftKey)void 0!==p&&(f.onSelect(he({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},a)),n.navigator.navigateNewWindow({itemUrl:p,item:l,state:o.getState()}));else if(t.altKey);else{if(void 0!==p)return f.onSelect(he({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},a)),void n.navigator.navigate({itemUrl:p,item:l,state:o.getState()});de(he({event:t,nextState:{isOpen:!1},props:n,query:s,refresh:r,store:o},a)).then((function(){f.onSelect(he({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},a))}))}}}(Ee({event:e,props:t,refresh:n,store:r},o))},onFocus:i,onBlur:y,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||i(n)}},s)},getPanelProps:function(e){return Ee({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.sourceIndex,o=Ce(n,Se);return Ee({role:"listbox","aria-labelledby":"".concat(a(t.id,r),"-label"),id:"".concat(a(t.id,r),"-list")},o)},getItemProps:function(e){var i=e.item,u=e.source,c=e.sourceIndex,l=Ce(e,we);return Ee({id:"".concat(a(t.id,c),"-item-").concat(i.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=A(r.getState());if(null!==r.getState().activeItemId&&t){var a=t.item,u=t.itemInputValue,c=t.itemUrl,l=t.source;l.onActive(Ee({event:e,item:a,itemInputValue:u,itemUrl:c,refresh:n,source:l,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var a=u.getItemInputValue({item:i,state:r.getState()}),c=u.getItemUrl({item:i,state:r.getState()});(c?Promise.resolve():de(Ee({event:e,nextState:{isOpen:!1},props:t,query:a,refresh:n,store:r},o))).then((function(){u.onSelect(Ee({event:e,item:i,itemInputValue:a,itemUrl:c,refresh:n,source:u,state:r.getState()},o))}))}},l)}}}function ke(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ke(Object(n),!0).forEach((function(t){qe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ke(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function qe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ne(e){var t,n,r,o,a=e.plugins,i=e.options,u=null===(t=((null===(n=i.__autocomplete_metadata)||void 0===n?void 0:n.userAgents)||[])[0])||void 0===t?void 0:t.segment,c=u?qe({},u,Object.keys((null===(r=i.__autocomplete_metadata)||void 0===r?void 0:r.options)||{})):{};return{plugins:a.map((function(e){return{name:e.name,options:Object.keys(e.__autocomplete_pluginOptions||[])}})),options:xe({"autocomplete-core":Object.keys(i)},c),ua:O.concat((null===(o=i.__autocomplete_metadata)||void 0===o?void 0:o.userAgents)||[])}}function Re(e){var t,n=e.state;return!1===n.isOpen||null===n.activeItemId?null:(null===(t=A(n))||void 0===t?void 0:t.itemInputValue)||null}function Be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Te(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Be(Object(n),!0).forEach((function(t){Le(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Be(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Le(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Fe=function(e,t){switch(t.type){case"setActiveItemId":case"mousemove":return Te(Te({},e),{},{activeItemId:t.payload});case"setQuery":return Te(Te({},e),{},{query:t.payload,completion:null});case"setCollections":return Te(Te({},e),{},{collections:t.payload});case"setIsOpen":return Te(Te({},e),{},{isOpen:t.payload});case"setStatus":return Te(Te({},e),{},{status:t.payload});case"setContext":return Te(Te({},e),{},{context:Te(Te({},e.context),t.payload)});case"ArrowDown":var n=Te(Te({},e),{},{activeItemId:t.payload.hasOwnProperty("nextActiveItemId")?t.payload.nextActiveItemId:S(1,e.activeItemId,g(e),t.props.defaultActiveItemId)});return Te(Te({},n),{},{completion:Re({state:n})});case"ArrowUp":var r=Te(Te({},e),{},{activeItemId:S(-1,e.activeItemId,g(e),t.props.defaultActiveItemId)});return Te(Te({},r),{},{completion:Re({state:r})});case"Escape":return e.isOpen?Te(Te({},e),{},{activeItemId:null,isOpen:!1,completion:null}):Te(Te({},e),{},{activeItemId:null,query:"",status:"idle",collections:[]});case"submit":return Te(Te({},e),{},{activeItemId:null,isOpen:!1,status:"idle"});case"reset":return Te(Te({},e),{},{activeItemId:!0===t.props.openOnFocus?t.props.defaultActiveItemId:null,status:"idle",query:""});case"focus":return Te(Te({},e),{},{activeItemId:t.props.defaultActiveItemId,isOpen:(t.props.openOnFocus||Boolean(e.query))&&t.props.shouldPanelOpen({state:e})});case"blur":return t.props.debug?e:Te(Te({},e),{},{isOpen:!1,activeItemId:null});case"mouseleave":return Te(Te({},e),{},{activeItemId:t.props.defaultActiveItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};function Me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ue(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Me(Object(n),!0).forEach((function(t){He(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Me(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function He(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ve(e){var t=[],n=W(e,t),r=R(Fe,n,(function(e){var t=e.prevState,r=e.state;n.onStateChange(Ue({prevState:t,state:r,refresh:i,navigator:n.navigator},o))})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return T(T({},e),{},{items:d(e.items).map((function(e){return T(T({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),a=De(Ue({props:n,refresh:i,store:r,navigator:n.navigator},o));function i(){return de(Ue({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,navigator:n.navigator,query:r.getState().query,refresh:i,store:r},o))}return n.plugins.forEach((function(e){var r;return null===(r=e.subscribe)||void 0===r?void 0:r.call(e,Ue(Ue({},o),{},{navigator:n.navigator,refresh:i,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})},onResolve:function(e){t.push({onResolve:e})}}))})),function(e){var t,n,r=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(n=t.userAgent)||void 0===n?void 0:n.includes("Algolia Crawler")){var a=o.document.createElement("meta"),i=o.document.querySelector("head");a.name="algolia:metadata",setTimeout((function(){a.content=JSON.stringify(r),i.appendChild(a)}),0)}}({metadata:Ne({plugins:n.plugins,options:e}),environment:n.environment}),Ue(Ue({refresh:i,navigator:n.navigator},a),o)}var We=function(e,t,n,r){var o;t[0]=0;for(var a=1;a<t.length;a++){var i=t[a++],u=t[a]?(t[0]|=i?1:2,n[t[a++]]):t[++a];3===i?r[0]=u:4===i?r[1]=Object.assign(r[1]||{},u):5===i?(r[1]=r[1]||{})[t[++a]]=u:6===i?r[1][t[++a]]+=u+"":i?(o=e.apply(u,We(e,u,n,["",null])),r.push(o),u[0]?t[0]|=2:(t[a-2]=0,t[a]=o)):r.push(u)}return r},Qe=new Map;function $e(e){var t=Qe.get(this);return t||(t=new Map,Qe.set(this,t)),(t=We(this,t.get(e)||(t.set(e,t=function(e){for(var t,n,r=1,o="",a="",i=[0],u=function(e){1===r&&(e||(o=o.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?i.push(0,e,o):3===r&&(e||o)?(i.push(3,e,o),r=2):2===r&&"..."===o&&e?i.push(4,e,0):2===r&&o&&!e?i.push(5,0,!0,o):r>=5&&((o||!e&&5===r)&&(i.push(r,0,o,n),r=6),e&&(i.push(r,e,0,n),r=6)),o=""},c=0;c<e.length;c++){c&&(1===r&&u(),u(c));for(var l=0;l<e[c].length;l++)t=e[c][l],1===r?"<"===t?(u(),i=[i],r=3):o+=t:4===r?"--"===o&&">"===t?(r=1,o=""):o=t+o[0]:a?t===a?a="":o+=t:'"'===t||"'"===t?a=t:">"===t?(u(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[c][l+1])?(u(),3===r&&(i=i[0]),r=i,(i=i[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(u(),r=2):o+=t),3===r&&"!--"===o&&(r=4,i=i[0])}return u(),i}(e)),t),arguments,[])).length>1?t:t[0]}var ze=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n};function Ge(e,t){if("string"==typeof t){var n=e.document.querySelector(t);return"The element ".concat(JSON.stringify(t)," is not in the document."),n}return t}function Ke(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return Object.keys(t).forEach((function(n){var r=e[n],o=t[n];r!==o&&(e[n]=[r,o].filter(Boolean).join(" "))})),e}),{})}var Je=function(e){return e&&"object"===r(e)&&"[object Object]"===Object.prototype.toString.call(e)};function Ye(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return Object.keys(t).forEach((function(n){var r=e[n],o=t[n];Array.isArray(r)&&Array.isArray(o)?e[n]=r.concat.apply(r,c(o)):Je(r)&&Je(o)?e[n]=Ye(r,o):e[n]=o})),e}),{})}function Xe(e,t){return Object.entries(e).reduce((function(e,r){var a=u(r,2),i=a[0],c=a[1];return t({key:i,value:c})?n(n({},e),{},o({},i,c)):e}),{})}var Ze=["ontouchstart","ontouchend","ontouchmove","ontouchcancel"];function et(e,t,n){e[t]=null===n?"":"number"!=typeof n?n:n+"px"}function tt(e){this._listeners[e.type](e)}function nt(e,t,n){var r,o,a=e[t];if("style"===t)if("string"==typeof n)e.style=n;else if(null===n)e.style="";else for(t in n)a&&n[t]===a[t]||et(e.style,t,n[t]);else"o"===t[0]&&"n"===t[1]?(r=t!==(t=t.replace(/Capture$/,"")),((o=t.toLowerCase())in e||Ze.includes(o))&&(t=o),t=t.slice(2),e._listeners||(e._listeners={}),e._listeners[t]=n,n?a||e.addEventListener(t,tt,r):e.removeEventListener(t,tt,r)):"list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&t in e?e[t]=null==n?"":n:"function"!=typeof n&&"dangerouslySetInnerHTML"!==t&&(null==n||!1===n&&!/^ar/.test(t)?e.removeAttribute(t):e.setAttribute(t,n))}function rt(e){return"onChange"===e?"onInput":e}function ot(e,t){for(var n in t)nt(e,rt(n),t[n])}function at(e,t){for(var n in t)"o"===n[0]&&"n"===n[1]||nt(e,rt(n),t[n])}var it=["children"];function ut(e){return function(t,n){var r=n.children,o=void 0===r?[]:r,a=i(n,it),u=e.document.createElement(t);return ot(u,a),u.append.apply(u,c(o)),u}}var ct=["autocompleteScopeApi","environment","classNames","getInputProps","getInputPropsCore","isDetached","state"],lt=function(e){var t=e.environment.document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("class","aa-LoadingIcon"),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("width","20"),t.setAttribute("height","20"),t.innerHTML='<circle\n cx="50"\n cy="50"\n fill="none"\n r="35"\n stroke="currentColor"\n stroke-dasharray="164.93361431346415 56.97787143782138"\n stroke-width="6"\n>\n <animateTransform\n attributeName="transform"\n type="rotate"\n repeatCount="indefinite"\n dur="1s"\n values="0 50 50;90 50 50;180 50 50;360 50 50"\n keyTimes="0;0.40;0.65;1"\n />\n</circle>',t},st=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-SubmitIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","20"),n.setAttribute("height","20"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z"),n.appendChild(r),n};function pt(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.classNames,a=e.environment,u=e.isDetached,c=e.placeholder,l=void 0===c?"Search":c,s=e.propGetters,p=e.setIsModalOpen,f=e.state,d=e.translations,v=ut(a),m=s.getRootProps(n({state:f,props:t.getRootProps({})},r)),h=v("div",n({class:o.root},m)),g=v("div",{class:o.detachedContainer,onMouseDown:function(e){e.stopPropagation()}}),y=v("div",{class:o.detachedOverlay,children:[g],onMouseDown:function(){p(!1),t.setIsOpen(!1)}}),b=s.getLabelProps(n({state:f,props:t.getLabelProps({})},r)),O=v("button",{class:o.submitButton,type:"submit",title:d.submitButtonTitle,children:[st({environment:a})]}),_=v("label",n({class:o.label,children:[O]},b)),P=v("button",{class:o.clearButton,type:"reset",title:d.clearButtonTitle,children:[ze({environment:a})]}),j=v("div",{class:o.loadingIndicator,children:[lt({environment:a})]}),S=function(e){var t=e.autocompleteScopeApi,r=e.environment;e.classNames;var o=e.getInputProps,a=e.getInputPropsCore,u=e.isDetached,c=e.state,l=i(e,ct),s=ut(r)("input",l),p=o(n({state:c,props:a({inputElement:s}),inputElement:s},t));return ot(s,n(n({},p),{},{onKeyDown:function(e){u&&"Tab"===e.key||p.onKeyDown(e)}})),s}({class:o.input,environment:a,state:f,getInputProps:s.getInputProps,getInputPropsCore:t.getInputProps,autocompleteScopeApi:r,isDetached:u}),w=v("div",{class:o.inputWrapperPrefix,children:[_,j]}),I=v("div",{class:o.inputWrapperSuffix,children:[P]}),E=v("div",{class:o.inputWrapper,children:[S]}),A=s.getFormProps(n({state:f,props:t.getFormProps({inputElement:S})},r)),C=v("form",n({class:o.form,children:[w,E,I]},A)),D=s.getPanelProps(n({state:f,props:t.getPanelProps({})},r)),k=v("div",n({class:o.panel},D)),x=v("div",{class:o.detachedSearchButtonQuery,textContent:f.query}),q=v("div",{class:o.detachedSearchButtonPlaceholder,hidden:Boolean(f.query),textContent:l});if(u){var N=v("div",{class:o.detachedSearchButtonIcon,children:[st({environment:a})]}),R=v("button",{type:"button",class:o.detachedSearchButton,onClick:function(){p(!0)},children:[N,q,x]}),B=v("button",{type:"button",class:o.detachedCancelButton,textContent:d.detachedCancelButtonText,onTouchStart:function(e){e.stopPropagation()},onClick:function(){t.setIsOpen(!1),p(!1)}}),T=v("div",{class:o.detachedFormContainer,children:[C,B]});g.appendChild(T),h.appendChild(R)}else h.appendChild(C);return{detachedContainer:g,detachedOverlay:y,detachedSearchButtonQuery:x,detachedSearchButtonPlaceholder:q,inputWrapper:E,input:S,root:h,form:C,label:_,submitButton:O,clearButton:P,loadingIndicator:j,panel:k}}var ft,dt,vt,mt,ht,gt,yt={},bt=[],Ot=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function _t(e,t){for(var n in t)e[n]=t[n];return e}function Pt(e){var t=e.parentNode;t&&t.removeChild(e)}function jt(e,t,n){var r,o,a,i={};for(a in t)"key"==a?r=t[a]:"ref"==a?o=t[a]:i[a]=t[a];if(arguments.length>2&&(i.children=arguments.length>3?ft.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(a in e.defaultProps)void 0===i[a]&&(i[a]=e.defaultProps[a]);return St(e,i,r,o,null)}function St(e,t,n,r,o){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++vt:o};return null==o&&null!=dt.vnode&&dt.vnode(a),a}function wt(e){return e.children}function It(e,t){this.props=e,this.context=t}function Et(e,t){if(null==t)return e.__?Et(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?Et(e):null}function At(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return At(e)}}function Ct(e){(!e.__d&&(e.__d=!0)&&mt.push(e)&&!Dt.__r++||gt!==dt.debounceRendering)&&((gt=dt.debounceRendering)||ht)(Dt)}function Dt(){for(var e;Dt.__r=mt.length;)e=mt.sort((function(e,t){return e.__v.__b-t.__v.__b})),mt=[],e.some((function(e){var t,n,r,o,a,i;e.__d&&(a=(o=(t=e).__v).__e,(i=t.__P)&&(n=[],(r=_t({},o)).__v=o.__v+1,Lt(i,o,r,t.__n,void 0!==i.ownerSVGElement,null!=o.__h?[a]:null,n,null==a?Et(o):a,o.__h),Ft(n,o),o.__e!=a&&At(o)))}))}function kt(e,t,n,r,o,a,i,u,c,l){var s,p,f,d,v,m,h,g=r&&r.__k||bt,y=g.length;for(n.__k=[],s=0;s<t.length;s++)if(null!=(d=n.__k[s]=null==(d=t[s])||"boolean"==typeof d?null:"string"==typeof d||"number"==typeof d||"bigint"==typeof d?St(null,d,null,null,d):Array.isArray(d)?St(wt,{children:d},null,null,null):d.__b>0?St(d.type,d.props,d.key,null,d.__v):d)){if(d.__=n,d.__b=n.__b+1,null===(f=g[s])||f&&d.key==f.key&&d.type===f.type)g[s]=void 0;else for(p=0;p<y;p++){if((f=g[p])&&d.key==f.key&&d.type===f.type){g[p]=void 0;break}f=null}Lt(e,d,f=f||yt,o,a,i,u,c,l),v=d.__e,(p=d.ref)&&f.ref!=p&&(h||(h=[]),f.ref&&h.push(f.ref,null,d),h.push(p,d.__c||v,d)),null!=v?(null==m&&(m=v),"function"==typeof d.type&&d.__k===f.__k?d.__d=c=xt(d,c,e):c=qt(e,d,f,g,v,c),"function"==typeof n.type&&(n.__d=c)):c&&f.__e==c&&c.parentNode!=e&&(c=Et(f))}for(n.__e=m,s=y;s--;)null!=g[s]&&("function"==typeof n.type&&null!=g[s].__e&&g[s].__e==n.__d&&(n.__d=Et(r,s+1)),Ht(g[s],g[s]));if(h)for(s=0;s<h.length;s++)Ut(h[s],h[++s],h[++s])}function xt(e,t,n){for(var r,o=e.__k,a=0;o&&a<o.length;a++)(r=o[a])&&(r.__=e,t="function"==typeof r.type?xt(r,t,n):qt(n,r,r,o,r.__e,t));return t}function qt(e,t,n,r,o,a){var i,u,c;if(void 0!==t.__d)i=t.__d,t.__d=void 0;else if(null==n||o!=a||null==o.parentNode)e:if(null==a||a.parentNode!==e)e.appendChild(o),i=null;else{for(u=a,c=0;(u=u.nextSibling)&&c<r.length;c+=2)if(u==o)break e;e.insertBefore(o,a),i=a}return void 0!==i?i:o.nextSibling}function Nt(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||Ot.test(t)?n:n+"px"}function Rt(e,t,n,r,o){var a;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Nt(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Nt(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])a=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+a]=n,n?r||e.addEventListener(t,a?Tt:Bt,a):e.removeEventListener(t,a?Tt:Bt,a);else if("dangerouslySetInnerHTML"!==t){if(o)t=t.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null!=n&&(!1!==n||"a"===t[0]&&"r"===t[1])?e.setAttribute(t,n):e.removeAttribute(t))}}function Bt(e){this.l[e.type+!1](dt.event?dt.event(e):e)}function Tt(e){this.l[e.type+!0](dt.event?dt.event(e):e)}function Lt(e,t,n,r,o,a,i,u,c){var l,s,p,f,d,v,m,h,g,y,b,O=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,u=t.__e=n.__e,t.__h=null,a=[u]),(l=dt.__b)&&l(t);try{e:if("function"==typeof O){if(h=t.props,g=(l=O.contextType)&&r[l.__c],y=l?g?g.props.value:l.__:r,n.__c?m=(s=t.__c=n.__c).__=s.__E:("prototype"in O&&O.prototype.render?t.__c=s=new O(h,y):(t.__c=s=new It(h,y),s.constructor=O,s.render=Vt),g&&g.sub(s),s.props=h,s.state||(s.state={}),s.context=y,s.__n=r,p=s.__d=!0,s.__h=[]),null==s.__s&&(s.__s=s.state),null!=O.getDerivedStateFromProps&&(s.__s==s.state&&(s.__s=_t({},s.__s)),_t(s.__s,O.getDerivedStateFromProps(h,s.__s))),f=s.props,d=s.state,p)null==O.getDerivedStateFromProps&&null!=s.componentWillMount&&s.componentWillMount(),null!=s.componentDidMount&&s.__h.push(s.componentDidMount);else{if(null==O.getDerivedStateFromProps&&h!==f&&null!=s.componentWillReceiveProps&&s.componentWillReceiveProps(h,y),!s.__e&&null!=s.shouldComponentUpdate&&!1===s.shouldComponentUpdate(h,s.__s,y)||t.__v===n.__v){s.props=h,s.state=s.__s,t.__v!==n.__v&&(s.__d=!1),s.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),s.__h.length&&i.push(s);break e}null!=s.componentWillUpdate&&s.componentWillUpdate(h,s.__s,y),null!=s.componentDidUpdate&&s.__h.push((function(){s.componentDidUpdate(f,d,v)}))}s.context=y,s.props=h,s.state=s.__s,(l=dt.__r)&&l(t),s.__d=!1,s.__v=t,s.__P=e,l=s.render(s.props,s.state,s.context),s.state=s.__s,null!=s.getChildContext&&(r=_t(_t({},r),s.getChildContext())),p||null==s.getSnapshotBeforeUpdate||(v=s.getSnapshotBeforeUpdate(f,d)),b=null!=l&&l.type===wt&&null==l.key?l.props.children:l,kt(e,Array.isArray(b)?b:[b],t,n,r,o,a,i,u,c),s.base=t.__e,t.__h=null,s.__h.length&&i.push(s),m&&(s.__E=s.__=null),s.__e=!1}else null==a&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Mt(n.__e,t,n,r,o,a,i,c);(l=dt.diffed)&&l(t)}catch(e){t.__v=null,(c||null!=a)&&(t.__e=u,t.__h=!!c,a[a.indexOf(u)]=null),dt.__e(e,t,n)}}function Ft(e,t){dt.__c&&dt.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){dt.__e(e,t.__v)}}))}function Mt(e,t,n,r,o,a,i,u){var c,l,s,p=n.props,f=t.props,d=t.type,v=0;if("svg"===d&&(o=!0),null!=a)for(;v<a.length;v++)if((c=a[v])&&"setAttribute"in c==!!d&&(d?c.localName===d:3===c.nodeType)){e=c,a[v]=null;break}if(null==e){if(null===d)return document.createTextNode(f);e=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,f.is&&f),a=null,u=!1}if(null===d)p===f||u&&e.data===f||(e.data=f);else{if(a=a&&ft.call(e.childNodes),l=(p=n.props||yt).dangerouslySetInnerHTML,s=f.dangerouslySetInnerHTML,!u){if(null!=a)for(p={},v=0;v<e.attributes.length;v++)p[e.attributes[v].name]=e.attributes[v].value;(s||l)&&(s&&(l&&s.__html==l.__html||s.__html===e.innerHTML)||(e.innerHTML=s&&s.__html||""))}if(function(e,t,n,r,o){var a;for(a in n)"children"===a||"key"===a||a in t||Rt(e,a,null,n[a],r);for(a in t)o&&"function"!=typeof t[a]||"children"===a||"key"===a||"value"===a||"checked"===a||n[a]===t[a]||Rt(e,a,t[a],n[a],r)}(e,f,p,o,u),s)t.__k=[];else if(v=t.props.children,kt(e,Array.isArray(v)?v:[v],t,n,r,o&&"foreignObject"!==d,a,i,a?a[0]:n.__k&&Et(n,0),u),null!=a)for(v=a.length;v--;)null!=a[v]&&Pt(a[v]);u||("value"in f&&void 0!==(v=f.value)&&(v!==p.value||v!==e.value||"progress"===d&&!v)&&Rt(e,"value",v,p.value,!1),"checked"in f&&void 0!==(v=f.checked)&&v!==e.checked&&Rt(e,"checked",v,p.checked,!1))}return e}function Ut(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){dt.__e(e,n)}}function Ht(e,t,n){var r,o;if(dt.unmount&&dt.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Ut(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){dt.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Ht(r[o],t,"function"!=typeof e.type);n||null==e.__e||Pt(e.__e),e.__e=e.__d=void 0}function Vt(e,t,n){return this.constructor(e,n)}ft=bt.slice,dt={__e:function(e,t){for(var n,r,o;t=t.__;)if((n=t.__c)&&!n.__)try{if((r=n.constructor)&&null!=r.getDerivedStateFromError&&(n.setState(r.getDerivedStateFromError(e)),o=n.__d),null!=n.componentDidCatch&&(n.componentDidCatch(e),o=n.__d),o)return n.__E=n}catch(t){e=t}throw e}},vt=0,It.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=_t({},this.state),"function"==typeof e&&(e=e(_t({},n),this.props)),e&&_t(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),Ct(this))},It.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ct(this))},It.prototype.render=wt,mt=[],ht="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Dt.__r=0;var Wt="__aa-highlight__",Qt="__/aa-highlight__";function $t(e){var t=e.highlightedValue.split(Wt),n=t.shift(),r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(Qt);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function zt(e){return function(e){if(Array.isArray(e))return Gt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Gt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Gt(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Gt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Kt(e){var t=e.hit,n=e.attribute,r=Array.isArray(n)?n:[n],o=h(t,["_highlightResult"].concat(zt(r),["value"]));return"string"!=typeof o&&(o=h(t,r)||""),$t({highlightedValue:o})}var Jt={"&":"&","<":"<",">":">",""":'"',"'":"'"},Yt=new RegExp(/\w/i),Xt=/&(amp|quot|lt|gt|#39);/g,Zt=RegExp(Xt.source);function en(e,t){var n,r,o,a=e[t],i=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,u=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return Yt.test((o=a.value)&&Zt.test(o)?o.replace(Xt,(function(e){return Jt[e]})):o)||u!==i?a.isHighlighted:u}function tn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function nn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?tn(Object(n),!0).forEach((function(t){rn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function rn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function on(e){return e.some((function(e){return e.isHighlighted}))?e.map((function(t,n){return nn(nn({},t),{},{isHighlighted:!en(e,n)})})):e.map((function(e){return nn(nn({},e),{},{isHighlighted:!1})}))}function an(e){return function(e){if(Array.isArray(e))return un(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return un(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return un(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function un(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function cn(e){var t=e.hit,n=e.attribute,r=Array.isArray(n)?n:[n],o=h(t,["_snippetResult"].concat(an(r),["value"]));return"string"!=typeof o&&(o=h(t,r)||""),$t({highlightedValue:o})}function ln(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ln(Object(n),!0).forEach((function(t){pn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ln(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function pn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var fn=["params"];function dn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function vn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dn(Object(n),!0).forEach((function(t){mn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function mn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function hn(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function gn(e){return function(e){if(Array.isArray(e))return yn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return yn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return yn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function yn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function bn(e){var t=e.createElement,n=e.Fragment;function r(e){var r=e.hit,o=e.attribute,a=e.tagName,i=void 0===a?"mark":a;return t(n,{},Kt({hit:r,attribute:o}).map((function(e,n){return e.isHighlighted?t(i,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="Highlight",r}function On(e){var t=e.createElement,n=e.Fragment;function r(e){var r,o=e.hit,a=e.attribute,i=e.tagName,u=void 0===i?"mark":i;return t(n,{},(r={hit:o,attribute:a},on(Kt(r))).map((function(e,n){return e.isHighlighted?t(u,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="ReverseHighlight",r}function _n(e){var t=e.createElement,n=e.Fragment;function r(e){var r,o=e.hit,a=e.attribute,i=e.tagName,u=void 0===i?"mark":i;return t(n,{},(r={hit:o,attribute:a},on(cn(r))).map((function(e,n){return e.isHighlighted?t(u,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="ReverseSnippet",r}function Pn(e){var t=e.createElement,n=e.Fragment;function r(e){var r=e.hit,o=e.attribute,a=e.tagName,i=void 0===a?"mark":a;return t(n,{},cn({hit:r,attribute:o}).map((function(e,n){return e.isHighlighted?t(i,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="Snippet",r}var jn=["classNames","container","getEnvironmentProps","getFormProps","getInputProps","getItemProps","getLabelProps","getListProps","getPanelProps","getRootProps","panelContainer","panelPlacement","render","renderNoResults","renderer","detachedMediaQuery","components","translations"],Sn={clearButton:"aa-ClearButton",detachedCancelButton:"aa-DetachedCancelButton",detachedContainer:"aa-DetachedContainer",detachedFormContainer:"aa-DetachedFormContainer",detachedOverlay:"aa-DetachedOverlay",detachedSearchButton:"aa-DetachedSearchButton",detachedSearchButtonIcon:"aa-DetachedSearchButtonIcon",detachedSearchButtonPlaceholder:"aa-DetachedSearchButtonPlaceholder",detachedSearchButtonQuery:"aa-DetachedSearchButtonQuery",form:"aa-Form",input:"aa-Input",inputWrapper:"aa-InputWrapper",inputWrapperPrefix:"aa-InputWrapperPrefix",inputWrapperSuffix:"aa-InputWrapperSuffix",item:"aa-Item",label:"aa-Label",list:"aa-List",loadingIndicator:"aa-LoadingIndicator",panel:"aa-Panel",panelLayout:"aa-PanelLayout aa-Panel--scrollable",root:"aa-Autocomplete",source:"aa-Source",sourceFooter:"aa-SourceFooter",sourceHeader:"aa-SourceHeader",sourceNoResults:"aa-SourceNoResults",submitButton:"aa-SubmitButton"},wn=function(e,t){var n=e.children;(0,e.render)(n,t)},In={createElement:jt,Fragment:wt,render:function(e,t,n){var r,o,a;dt.__&&dt.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,a=[],Lt(t,e=(!r&&n||t).__k=jt(wt,null,[e]),o||yt,yt,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?ft.call(t.childNodes):null,a,!r&&n?n:o?o.__e:t.firstChild,r),Ft(a,e)}};function En(e){var t=e.panelPlacement,n=e.container,r=e.form,o=e.environment,a=n.getBoundingClientRect(),i=(o.pageYOffset||o.document.documentElement.scrollTop||o.document.body.scrollTop||0)+a.top+a.height;switch(t){case"start":return{top:i,left:a.left};case"end":return{top:i,right:o.document.documentElement.clientWidth-(a.left+a.width)};case"full-width":return{top:i,left:0,right:0,width:"unset",maxWidth:"unset"};case"input-wrapper-width":var u=r.getBoundingClientRect();return{top:i,left:u.left,right:o.document.documentElement.clientWidth-(u.left+u.width),width:"unset",maxWidth:"unset"};default:throw new Error("[Autocomplete] The `panelPlacement` value ".concat(JSON.stringify(t)," is not valid."))}}var An=[{segment:"autocomplete-js",version:b}],Cn=["components"];var Dn=function(e,t){function n(t){return e({searchClient:t.searchClient,queries:t.requests.map((function(e){return e.query}))}).then((function(e){return e.map((function(e,n){var r=t.requests[n];return{items:e,sourceId:r.sourceId,transformResponse:r.transformResponse}}))}))}return function(e){return function(r){return sn(sn({requesterId:t,execute:n},e),r)}}}((function(e){return function(e){var t=e.searchClient,n=e.queries,r=e.userAgents,o=void 0===r?[]:r;return"function"==typeof t.addAlgoliaAgent&&[].concat(gn(O),gn(o)).forEach((function(e){var n=e.segment,r=e.version;t.addAlgoliaAgent(n,r)})),t.search(n.map((function(e){var t=e.params;return vn(vn({},hn(e,fn)),{},{params:vn({hitsPerPage:5,highlightPreTag:Wt,highlightPostTag:Qt},t)})}))).then((function(e){return e.results}))}(n(n({},e),{},{userAgents:An}))}),"algolia");var kn=Dn({transformResponse:function(e){return e.hits}});e.autocomplete=function(e){var t,r=function(){var e=[],t=[];function n(n){e.push(n);var r=n();t.push(r)}return{runEffect:n,cleanupEffects:function(){var e=t;t=[],e.forEach((function(e){e()}))},runEffects:function(){var t=e;e=[],t.forEach((function(e){n(e)}))}}}(),u=r.runEffect,c=r.cleanupEffects,l=r.runEffects,s=(t=[],{reactive:function(e){var n=e(),r={_fn:e,_ref:{current:n},get value(){return this._ref.current},set value(e){this._ref.current=e}};return t.push(r),r},runReactives:function(){t.forEach((function(e){e._ref.current=e._fn()}))}}),d=s.reactive,v=s.runReactives,h=p(!1),y=p(e),b=p(void 0),O=d((function(){return function(e){var t,r=e.classNames,o=e.container,a=e.getEnvironmentProps,u=e.getFormProps,c=e.getInputProps,l=e.getItemProps,s=e.getLabelProps,p=e.getListProps,f=e.getPanelProps,d=e.getRootProps,v=e.panelContainer,h=e.panelPlacement,g=e.render,y=e.renderNoResults,b=e.renderer,O=e.detachedMediaQuery,_=e.components,P=e.translations,j=i(e,jn),S="undefined"!=typeof window?window:{},w=Ge(S,o);w.tagName;var I=n(n({},In),b),E={Highlight:bn(I),ReverseHighlight:On(I),ReverseSnippet:_n(I),Snippet:Pn(I)};return{renderer:{classNames:Ke(Sn,null!=r?r:{}),container:w,getEnvironmentProps:null!=a?a:function(e){return e.props},getFormProps:null!=u?u:function(e){return e.props},getInputProps:null!=c?c:function(e){return e.props},getItemProps:null!=l?l:function(e){return e.props},getLabelProps:null!=s?s:function(e){return e.props},getListProps:null!=p?p:function(e){return e.props},getPanelProps:null!=f?f:function(e){return e.props},getRootProps:null!=d?d:function(e){return e.props},panelContainer:v?Ge(S,v):S.document.body,panelPlacement:null!=h?h:"input-wrapper-width",render:null!=g?g:wn,renderNoResults:y,renderer:I,detachedMediaQuery:null!=O?O:getComputedStyle(S.document.documentElement).getPropertyValue("--aa-detached-media-query"),components:n(n({},E),_),translations:n(n({},{clearButtonTitle:"Clear",detachedCancelButtonText:"Cancel",submitButtonTitle:"Submit"}),P)},core:n(n({},j),{},{id:null!==(t=j.id)&&void 0!==t?t:m(),environment:S})}}(y.current)})),_=d((function(){return O.value.core.environment.matchMedia(O.value.renderer.detachedMediaQuery).matches})),P=d((function(){return Ve(n(n({},O.value.core),{},{onStateChange:function(e){var t,n,r;h.current=e.state.collections.some((function(e){return e.source.templates.noResults})),null===(t=b.current)||void 0===t||t.call(b,e),null===(n=(r=O.value.core).onStateChange)||void 0===n||n.call(r,e)},shouldPanelOpen:y.current.shouldPanelOpen||function(e){var t=e.state;if(_.value)return!0;var n=g(t)>0;if(!O.value.core.openOnFocus&&!t.query)return n;var r=Boolean(h.current||O.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:An,options:e}}))})),j=p(n({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},O.value.core.initialState)),S={getEnvironmentProps:O.value.renderer.getEnvironmentProps,getFormProps:O.value.renderer.getFormProps,getInputProps:O.value.renderer.getInputProps,getItemProps:O.value.renderer.getItemProps,getLabelProps:O.value.renderer.getLabelProps,getListProps:O.value.renderer.getListProps,getPanelProps:O.value.renderer.getPanelProps,getRootProps:O.value.renderer.getRootProps},w={setActiveItemId:P.value.setActiveItemId,setQuery:P.value.setQuery,setCollections:P.value.setCollections,setIsOpen:P.value.setIsOpen,setStatus:P.value.setStatus,setContext:P.value.setContext,refresh:P.value.refresh,navigator:P.value.navigator},I=d((function(){return $e.bind(O.value.renderer.renderer.createElement)})),E=d((function(){return pt({autocomplete:P.value,autocompleteScopeApi:w,classNames:O.value.renderer.classNames,environment:O.value.core.environment,isDetached:_.value,placeholder:O.value.core.placeholder,propGetters:S,setIsModalOpen:k,state:j.current,translations:O.value.renderer.translations})}));function A(){ot(E.value.panel,{style:_.value?{}:En({panelPlacement:O.value.renderer.panelPlacement,container:E.value.root,form:E.value.form,environment:O.value.core.environment})})}function C(e){j.current=e;var t={autocomplete:P.value,autocompleteScopeApi:w,classNames:O.value.renderer.classNames,components:O.value.renderer.components,container:O.value.renderer.container,html:I.value,dom:E.value,panelContainer:_.value?E.value.detachedContainer:O.value.renderer.panelContainer,propGetters:S,state:j.current,renderer:O.value.renderer.renderer},r=!g(e)&&!h.current&&O.value.renderer.renderNoResults||O.value.renderer.render;!function(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.dom,a=e.propGetters,i=e.state;at(o.root,a.getRootProps(n({state:i,props:t.getRootProps({})},r))),at(o.input,a.getInputProps(n({state:i,props:t.getInputProps({inputElement:o.input}),inputElement:o.input},r))),ot(o.label,{hidden:"stalled"===i.status}),ot(o.loadingIndicator,{hidden:"stalled"!==i.status}),ot(o.clearButton,{hidden:!i.query}),ot(o.detachedSearchButtonQuery,{textContent:i.query}),ot(o.detachedSearchButtonPlaceholder,{hidden:Boolean(i.query)})}(t),function(e,t){var r=t.autocomplete,o=t.autocompleteScopeApi,i=t.classNames,u=t.html,c=t.dom,l=t.panelContainer,s=t.propGetters,p=t.state,f=t.components,d=t.renderer;if(p.isOpen){l.contains(c.panel)||"loading"===p.status||l.appendChild(c.panel),c.panel.classList.toggle("aa-Panel--stalled","stalled"===p.status);var v=p.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var c=e.source,l=e.items;return d.createElement("section",{key:t,className:i.source,"data-autocomplete-source-id":c.sourceId},c.templates.header&&d.createElement("div",{className:i.sourceHeader},c.templates.header({components:f,createElement:d.createElement,Fragment:d.Fragment,items:l,source:c,state:p,html:u})),c.templates.noResults&&0===l.length?d.createElement("div",{className:i.sourceNoResults},c.templates.noResults({components:f,createElement:d.createElement,Fragment:d.Fragment,source:c,state:p,html:u})):d.createElement("ul",a({className:i.list},s.getListProps(n({state:p,props:r.getListProps({sourceIndex:t})},o))),l.map((function(e){var l=r.getItemProps({item:e,source:c,sourceIndex:t});return d.createElement("li",a({key:l.id,className:i.item},s.getItemProps(n({state:p,props:l},o))),c.templates.item({components:f,createElement:d.createElement,Fragment:d.Fragment,item:e,state:p,html:u}))}))),c.templates.footer&&d.createElement("div",{className:i.sourceFooter},c.templates.footer({components:f,createElement:d.createElement,Fragment:d.Fragment,items:l,source:c,state:p,html:u})))})),m=d.createElement(d.Fragment,null,d.createElement("div",{className:i.panelLayout},v),d.createElement("div",{className:"aa-GradientBottom"})),h=v.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(n(n({children:m,state:p,sections:v,elements:h},d),{},{components:f,html:u},o),c.panel)}else l.contains(c.panel)&&l.removeChild(c.panel)}(r,t)}function D(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c();var t=O.value.renderer,n=t.components,r=i(t,Cn);y.current=Ye(r,O.value.core,{components:Xe(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:j.current},e),v(),l(),P.value.refresh().then((function(){C(j.current)}))}function k(e){requestAnimationFrame((function(){var t=O.value.core.environment.document.body.contains(E.value.detachedOverlay);e!==t&&(e?(O.value.core.environment.document.body.appendChild(E.value.detachedOverlay),O.value.core.environment.document.body.classList.add("aa-Detached"),E.value.input.focus()):(O.value.core.environment.document.body.removeChild(E.value.detachedOverlay),O.value.core.environment.document.body.classList.remove("aa-Detached")))}))}return u((function(){var e=P.value.getEnvironmentProps({formElement:E.value.form,panelElement:E.value.panel,inputElement:E.value.input});return ot(O.value.core.environment,e),function(){ot(O.value.core.environment,Object.keys(e).reduce((function(e,t){return n(n({},e),{},o({},t,void 0))}),{}))}})),u((function(){var e=_.value?O.value.core.environment.document.body:O.value.renderer.panelContainer,t=_.value?E.value.detachedOverlay:E.value.panel;return _.value&&j.current.isOpen&&k(!0),C(j.current),function(){e.contains(t)&&e.removeChild(t)}})),u((function(){var e=O.value.renderer.container;return e.appendChild(E.value.root),function(){e.removeChild(E.value.root)}})),u((function(){var e=f((function(e){C(e.state)}),0);return b.current=function(t){var n=t.state,r=t.prevState;(_.value&&r.isOpen!==n.isOpen&&k(n.isOpen),_.value||!n.isOpen||r.isOpen||A(),n.query!==r.query)&&O.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){b.current=void 0}})),u((function(){var e=f((function(){var e=_.value;_.value=O.value.core.environment.matchMedia(O.value.renderer.detachedMediaQuery).matches,e!==_.value?D({}):requestAnimationFrame(A)}),20);return O.value.core.environment.addEventListener("resize",e),function(){O.value.core.environment.removeEventListener("resize",e)}})),u((function(){if(!_.value)return function(){};function e(e){E.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=O.value.core.environment.matchMedia(getComputedStyle(O.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),u((function(){return requestAnimationFrame(A),function(){}})),n(n({},w),{},{update:D,destroy:function(){c()}})},e.getAlgoliaFacets=function(e){var t=Dn({transformResponse:function(e){return e.facetHits}}),r=e.queries.map((function(e){return n(n({},e),{},{type:"facet"})}));return t(n(n({},e),{},{queries:r}))},e.getAlgoliaResults=kn,Object.defineProperty(e,"__esModule",{value:!0})})); +//# sourceMappingURL=index.production.js.map diff --git a/themes/itheme/static/js/md5.js b/themes/itheme/static/js/md5.js new file mode 100644 index 0000000..6876bc3 --- /dev/null +++ b/themes/itheme/static/js/md5.js @@ -0,0 +1,184 @@ +function md5cycle(x, k) { +var a = x[0], b = x[1], c = x[2], d = x[3]; + +a = ff(a, b, c, d, k[0], 7, -680876936); +d = ff(d, a, b, c, k[1], 12, -389564586); +c = ff(c, d, a, b, k[2], 17, 606105819); +b = ff(b, c, d, a, k[3], 22, -1044525330); +a = ff(a, b, c, d, k[4], 7, -176418897); +d = ff(d, a, b, c, k[5], 12, 1200080426); +c = ff(c, d, a, b, k[6], 17, -1473231341); +b = ff(b, c, d, a, k[7], 22, -45705983); +a = ff(a, b, c, d, k[8], 7, 1770035416); +d = ff(d, a, b, c, k[9], 12, -1958414417); +c = ff(c, d, a, b, k[10], 17, -42063); +b = ff(b, c, d, a, k[11], 22, -1990404162); +a = ff(a, b, c, d, k[12], 7, 1804603682); +d = ff(d, a, b, c, k[13], 12, -40341101); +c = ff(c, d, a, b, k[14], 17, -1502002290); +b = ff(b, c, d, a, k[15], 22, 1236535329); + +a = gg(a, b, c, d, k[1], 5, -165796510); +d = gg(d, a, b, c, k[6], 9, -1069501632); +c = gg(c, d, a, b, k[11], 14, 643717713); +b = gg(b, c, d, a, k[0], 20, -373897302); +a = gg(a, b, c, d, k[5], 5, -701558691); +d = gg(d, a, b, c, k[10], 9, 38016083); +c = gg(c, d, a, b, k[15], 14, -660478335); +b = gg(b, c, d, a, k[4], 20, -405537848); +a = gg(a, b, c, d, k[9], 5, 568446438); +d = gg(d, a, b, c, k[14], 9, -1019803690); +c = gg(c, d, a, b, k[3], 14, -187363961); +b = gg(b, c, d, a, k[8], 20, 1163531501); +a = gg(a, b, c, d, k[13], 5, -1444681467); +d = gg(d, a, b, c, k[2], 9, -51403784); +c = gg(c, d, a, b, k[7], 14, 1735328473); +b = gg(b, c, d, a, k[12], 20, -1926607734); + +a = hh(a, b, c, d, k[5], 4, -378558); +d = hh(d, a, b, c, k[8], 11, -2022574463); +c = hh(c, d, a, b, k[11], 16, 1839030562); +b = hh(b, c, d, a, k[14], 23, -35309556); +a = hh(a, b, c, d, k[1], 4, -1530992060); +d = hh(d, a, b, c, k[4], 11, 1272893353); +c = hh(c, d, a, b, k[7], 16, -155497632); +b = hh(b, c, d, a, k[10], 23, -1094730640); +a = hh(a, b, c, d, k[13], 4, 681279174); +d = hh(d, a, b, c, k[0], 11, -358537222); +c = hh(c, d, a, b, k[3], 16, -722521979); +b = hh(b, c, d, a, k[6], 23, 76029189); +a = hh(a, b, c, d, k[9], 4, -640364487); +d = hh(d, a, b, c, k[12], 11, -421815835); +c = hh(c, d, a, b, k[15], 16, 530742520); +b = hh(b, c, d, a, k[2], 23, -995338651); + +a = ii(a, b, c, d, k[0], 6, -198630844); +d = ii(d, a, b, c, k[7], 10, 1126891415); +c = ii(c, d, a, b, k[14], 15, -1416354905); +b = ii(b, c, d, a, k[5], 21, -57434055); +a = ii(a, b, c, d, k[12], 6, 1700485571); +d = ii(d, a, b, c, k[3], 10, -1894986606); +c = ii(c, d, a, b, k[10], 15, -1051523); +b = ii(b, c, d, a, k[1], 21, -2054922799); +a = ii(a, b, c, d, k[8], 6, 1873313359); +d = ii(d, a, b, c, k[15], 10, -30611744); +c = ii(c, d, a, b, k[6], 15, -1560198380); +b = ii(b, c, d, a, k[13], 21, 1309151649); +a = ii(a, b, c, d, k[4], 6, -145523070); +d = ii(d, a, b, c, k[11], 10, -1120210379); +c = ii(c, d, a, b, k[2], 15, 718787259); +b = ii(b, c, d, a, k[9], 21, -343485551); + +x[0] = add32(a, x[0]); +x[1] = add32(b, x[1]); +x[2] = add32(c, x[2]); +x[3] = add32(d, x[3]); + +} + +function cmn(q, a, b, x, s, t) { +a = add32(add32(a, q), add32(x, t)); +return add32((a << s) | (a >>> (32 - s)), b); +} + +function ff(a, b, c, d, x, s, t) { +return cmn((b & c) | ((~b) & d), a, b, x, s, t); +} + +function gg(a, b, c, d, x, s, t) { +return cmn((b & d) | (c & (~d)), a, b, x, s, t); +} + +function hh(a, b, c, d, x, s, t) { +return cmn(b ^ c ^ d, a, b, x, s, t); +} + +function ii(a, b, c, d, x, s, t) { +return cmn(c ^ (b | (~d)), a, b, x, s, t); +} + +function md51(s) { +txt = ''; +var n = s.length, +state = [1732584193, -271733879, -1732584194, 271733878], i; +for (i=64; i<=s.length; i+=64) { +md5cycle(state, md5blk(s.substring(i-64, i))); +} +s = s.substring(i-64); +var tail = [0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]; +for (i=0; i<s.length; i++) +tail[i>>2] |= s.charCodeAt(i) << ((i%4) << 3); +tail[i>>2] |= 0x80 << ((i%4) << 3); +if (i > 55) { +md5cycle(state, tail); +for (i=0; i<16; i++) tail[i] = 0; +} +tail[14] = n*8; +md5cycle(state, tail); +return state; +} + +/* there needs to be support for Unicode here, + * unless we pretend that we can redefine the MD-5 + * algorithm for multi-byte characters (perhaps + * by adding every four 16-bit characters and + * shortening the sum to 32 bits). Otherwise + * I suggest performing MD-5 as if every character + * was two bytes--e.g., 0040 0025 = @%--but then + * how will an ordinary MD-5 sum be matched? + * There is no way to standardize text to something + * like UTF-8 before transformation; speed cost is + * utterly prohibitive. The JavaScript standard + * itself needs to look at this: it should start + * providing access to strings as preformed UTF-8 + * 8-bit unsigned value arrays. + */ +function md5blk(s) { /* I figured global was faster. */ +var md5blks = [], i; /* Andy King said do it this way. */ +for (i=0; i<64; i+=4) { +md5blks[i>>2] = s.charCodeAt(i) ++ (s.charCodeAt(i+1) << 8) ++ (s.charCodeAt(i+2) << 16) ++ (s.charCodeAt(i+3) << 24); +} +return md5blks; +} + +var hex_chr = '0123456789abcdef'.split(''); + +function rhex(n) +{ +var s='', j=0; +for(; j<4; j++) +s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] ++ hex_chr[(n >> (j * 8)) & 0x0F]; +return s; +} + +function hex(x) { +for (var i=0; i<x.length; i++) +x[i] = rhex(x[i]); +return x.join(''); +} + +function md5(s) { +return hex(md51(s)); +} + +/* this function is much faster, +so if possible we use it. Some IEs +are the only ones I know of that +need the idiotic second function, +generated by an if clause. */ + +function add32(a, b) { +return (a + b) & 0xFFFFFFFF; +} + +if (md5('hello') != '5d41402abc4b2a76b9719d911017c592') { +function add32(x, y) { +var lsw = (x & 0xFFFF) + (y & 0xFFFF), +msw = (x >> 16) + (y >> 16) + (lsw >> 16); +return (msw << 16) | (lsw & 0xFFFF); +} +} diff --git a/themes/itheme/theme.toml b/themes/itheme/theme.toml new file mode 100644 index 0000000..323d2f3 --- /dev/null +++ b/themes/itheme/theme.toml @@ -0,0 +1,18 @@ +name = "iTheme" +license = "GPL-3.0" +licenselink = "https://github.com/floyd-li/hugo-theme-itheme/blob/master/LICENSE" +description = "An Apple's Style Theme" +homepage = "https://github.com/floyd-li/hugo-theme-itheme" +demosite = "https://hugo-theme-itheme.netlify.app" +tags = ["apple","blog", "newsroom", "light", "dark"] +features = ["blog", "apple", "newsroom"] +[author] + name = "Floyd Li" + homepage = "https://github.com/floyd-li" +[original] + name = "austin2035" + homepage = "https://astro.yufengbiji.com/" + repo = "https://github.com/austin2035/astro-air-blog" +[module] + [module.hugoVersion] + min = "0.93.0" |
