');--icon-sun-filter:invert(0.61) sepia(0.8) saturate(5) hue-rotate(0deg) brightness(0.92);--icon-moon:url('data:image/svg+xml, ');--icon-moon-filter:invert(0.1);--color-mode-icon:var(--icon-moon);--color-mode-icon-filter:var(--icon-moon-filter)}@media (prefers-color-scheme:dark){:root{--color-mode:"dark"}:root:not([data-user-color-scheme]){--color-mode:"dark";--color-brand:#7613e7;--color-white:#FFFFFF;--color-dark:#010101;--color-text:#FFFFFF;--color-gray:#E5EFF5;--color-error:#e7131a;--color-success:#1BA672;--color-border:#383B40;--bg-color:#111016;--bg-color-2:var(--color-dark);--bg-gray:#18181d;--bg-white:var(--color-white);--bg-transparent:rgba(31, 32, 35, .7);--bg-transparent-2:rgba(31, 32, 35, .78);--bg-code-block:#F6F9FC;--bg-code-inline:var(--bg-gray);--color-code-inline:var(--color-text);--bg-post-card:var(--bg-gray);--bg-tag-list:linear-gradient(to left, var(--bg-color), rgba(31, 32, 35, 0));--bg-gradient:--bg-gray;--color-mode-icon:var(--icon-sun);--color-mode-icon-filter:var(--icon-sun-filter)}}[data-user-color-scheme=dark]{--color-mode:"dark";--color-brand:#7613e7;--color-white:#FFFFFF;--color-dark:#010101;--color-text:#FFFFFF;--color-gray:#E5EFF5;--color-error:#e7131a;--color-success:#1BA672;--color-border:#383B40;--bg-color:#111016;--bg-color-2:var(--color-dark);--bg-gray:#18181d;--bg-white:var(--color-white);--bg-transparent:rgba(31, 32, 35, .7);--bg-transparent-2:rgba(31, 32, 35, .78);--bg-code-block:#F6F9FC;--bg-code-inline:var(--bg-gray);--color-code-inline:var(--color-text);--bg-post-card:var(--bg-gray);--bg-tag-list:linear-gradient(to left, var(--bg-color), rgba(31, 32, 35, 0));--bg-gradient:--bg-gray;--color-mode-icon:var(--icon-sun);--color-mode-icon-filter:var(--icon-sun-filter)}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.tooltipped{position:relative}.tooltipped::after{position:absolute;z-index:1000000;display:none;padding:.5em .75em;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:subpixel-antialiased;color:var(--color-fg-on-emphasis);text-align:center;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:var(--color-neutral-emphasis-plus);border-radius:6px;opacity:0}.tooltipped::before{position:absolute;z-index:1000001;display:none;width:0;height:0;color:var(--color-neutral-emphasis-plus);pointer-events:none;content:"";border:6px solid transparent;opacity:0}@-webkit-keyframes tooltip-appear{from{opacity:0}to{opacity:1}}@keyframes tooltip-appear{from{opacity:0}to{opacity:1}}.tooltipped:active::after,.tooltipped:active::before,.tooltipped:focus::after,.tooltipped:focus::before,.tooltipped:hover::after,.tooltipped:hover::before{display:inline-block;text-decoration:none;-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:.4s;animation-delay:.4s}.tooltipped-no-delay:active::after,.tooltipped-no-delay:active::before,.tooltipped-no-delay:focus::after,.tooltipped-no-delay:focus::before,.tooltipped-no-delay:hover::after,.tooltipped-no-delay:hover::before{-webkit-animation-delay:0s;animation-delay:0s}.tooltipped-multiline:active::after,.tooltipped-multiline:focus::after,.tooltipped-multiline:hover::after{display:table-cell}.tooltipped-s::after,.tooltipped-se::after,.tooltipped-sw::after{top:100%;right:50%;margin-top:6px}.tooltipped-s::before,.tooltipped-se::before,.tooltipped-sw::before{top:auto;right:50%;bottom:-7px;margin-right:-6px;border-bottom-color:var(--color-neutral-emphasis-plus)}.tooltipped-se::after{right:auto;left:50%;margin-left:-16px}.tooltipped-sw::after{margin-right:-16px}.tooltipped-n::after,.tooltipped-ne::after,.tooltipped-nw::after{right:50%;bottom:100%;margin-bottom:6px}.tooltipped-n::before,.tooltipped-ne::before,.tooltipped-nw::before{top:-7px;right:50%;bottom:auto;margin-right:-6px;border-top-color:var(--color-neutral-emphasis-plus)}.tooltipped-ne::after{right:auto;left:50%;margin-left:-16px}.tooltipped-nw::after{margin-right:-16px}.tooltipped-n::after,.tooltipped-s::after{transform:translateX(50%)}.tooltipped-w::after{right:100%;bottom:50%;margin-right:6px;transform:translateY(50%)}.tooltipped-w::before{top:50%;bottom:50%;left:-7px;margin-top:-6px;border-left-color:var(--color-neutral-emphasis-plus)}.tooltipped-e::after{bottom:50%;left:100%;margin-left:6px;transform:translateY(50%)}.tooltipped-e::before{top:50%;right:-7px;bottom:50%;margin-top:-6px;border-right-color:var(--color-neutral-emphasis-plus)}.tooltipped-align-right-1::after,.tooltipped-align-right-2::after{right:0;margin-right:0}.tooltipped-align-right-1::before{right:10px}.tooltipped-align-right-2::before{right:15px}.tooltipped-align-left-1::after,.tooltipped-align-left-2::after{left:0;margin-left:0}.tooltipped-align-left-1::before{left:5px}.tooltipped-align-left-2::before{left:10px}.tooltipped-multiline::after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-wrap:break-word;white-space:pre-line;border-collapse:separate}.tooltipped-multiline.tooltipped-n::after,.tooltipped-multiline.tooltipped-s::after{right:auto;left:50%;transform:translateX(-50%)}.tooltipped-multiline.tooltipped-e::after,.tooltipped-multiline.tooltipped-w::after{right:100%}.tooltipped-sticky::after,.tooltipped-sticky::before{display:inline-block}.tooltipped-sticky.tooltipped-multiline::after{display:table-cell}.zoom-overlay{background-color:var(--bg-color)}.icon{width:24px;height:24px}.icon--m{width:48px;height:48px}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}blockquote,body,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,legend,ol,p,pre,ul{margin:0;padding:0}li>ol,li>ul{margin-bottom:0}table{border-collapse:collapse;border-spacing:0}.o-grid{margin:0 auto;max-width:1400px;padding:0 16px;display:flex;flex-wrap:wrap}.o-grid .o-grid{padding:0}@media (min-width:40em){.o-grid .o-grid{margin-right:-16px;margin-left:-16px}}@media (min-width:64em){.o-grid .o-grid{margin-right:-24px;margin-left:-24px}}.o-grid--center{align-items:center}.o-grid--full{max-width:100vw}@media (min-width:40em){.o-grid__col{flex-grow:1;padding-right:16px;padding-left:16px}}@media (min-width:64em){.o-grid__col{padding-right:24px;padding-left:24px}}.o-grid__col--1-3-s{width:33.3333333333%}.o-grid__col--2-3-s{width:66.6666666667%}.o-grid__col--1-4-s{width:25%}.o-grid__col--2-4-s{width:50%}.o-grid__col--3-4-s{width:75%}.o-grid__col--4-4-s{width:100%}@media (min-width:40em){.o-grid__col--1-3-m{width:33.3333333333%}.o-grid__col--2-3-m{width:66.6666666667%}.o-grid__col--1-4-m{width:25%}.o-grid__col--2-4-m{width:50%}.o-grid__col--3-4-m{width:75%}.o-grid__col--4-4-m{width:100%}}@media (min-width:64em){.o-grid__col--1-3-l{width:33.3333333333%}.o-grid__col--2-3-l{width:66.6666666667%}.o-grid__col--1-4-l{width:25%}.o-grid__col--2-4-l{width:50%}.o-grid__col--3-4-l{width:75%}.o-grid__col--4-4-l{width:100%}}.o-grid__col--full{width:100%}.o-grid__col--center{margin:0 auto;flex-grow:initial}.o-grid__col--end{margin-left:auto}.o-grid__col--initial-grow{flex-grow:initial}.c-site-container{display:flex;min-height:100vh;flex-direction:column}.c-site-container .o-wrapper{flex:1 0 auto}.o-plain-list{margin:0;padding:0;list-style:none}body{direction:ltr;color:var(--color-text);font-size:16px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";line-height:1.5;background-color:var(--bg-color);padding-top:72px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}dd,ol,ul{margin-left:16px}img{height:auto;display:block;max-width:100%;font-style:italic}hr{border:0;margin-bottom:32px}hr.seperator{margin-top:32px;border:.5px solid var(--bg-gray)}h1,h2,h3,h4,h5,h6{font-weight:800}h1{font-size:56px;line-height:64px}h2{font-size:48px;line-height:56px}h3{font-size:40px;line-height:48px}h4{font-size:32px;line-height:40px}h5{font-size:24px;line-height:32px}h6{font-size:20px;line-height:24px}b,strong{font-weight:700}blockquote{padding:24px 0;font-size:24px;line-height:32px;padding:0 1.5em;font-style:italic;font-size:1.65em;border-left:3px solid var(--color-brand)}pre{padding:32px}code,pre{overflow:auto;white-space:pre-wrap;word-wrap:break-word;word-break:break-all;border:1px solid #ddd;border-left:1px solid var(--color-brand);margin:1.6em;padding:1em 1.5em;display:block;font-size:16px;background-color:var(--bg-code-block)}li code,p code{color:var(--color-code-inline);background-color:var(--bg-code-inline)}pre[class*=language-]{padding:32px;margin-bottom:0;margin-top:32px}code[class*=language-],pre[class*=language-]{white-space:pre-wrap;word-break:break-all;line-height:inherit;background-color:var(--bg-code-block)}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{width:100%;display:block;padding:16px;margin-bottom:16px;border:1px solid #dfe3e9;border-radius:0;outline:0;color:var(--color-text);background-color:var(--color-white);font-size:16px;line-height:24px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select:focus,textarea:focus{border-color:var(--color-brand)}table{width:100%;max-width:100%}table td,table th{padding:16px;text-align:left;border-top:1px solid var(--color-border)}table thead th{white-space:nowrap}table tbody+tbody{border-top:2px solid var(--color-border)}.responsive-table{display:block;width:100%;overflow-x:auto}:lang(ar) *{letter-spacing:initial!important}:lang(ar) .c-nav__item{font-size:14px}:lang(ar) .icon--ei-chevron-right .icon__cnt{transform:scaleX(-1)}.c-header{padding:16px 0;background-color:var(--bg-color)}.js-header{position:fixed;top:0;right:0;left:0;z-index:100;will-change:transform;border-top:2px solid var(--color-brand);transition:transform .5s ease}.js-header--pinned{transform:translateY(0);-webkit-backdrop-filter:saturate(180%) blur(2px);backdrop-filter:saturate(180%) blur(2px);background-color:var(--bg-transparent);border-top:none}@media (min-width:64em){.js-header--pinned{box-shadow:0 4px 12px rgba(0,0,0,.08)}}@-moz-document url-prefix(){.js-header--pinned{background-color:var(--bg-color)}}.js-header--unpinned{transform:translateY(-100%);border-top:none}.js-header--top{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background-color:var(--bg-color);border-top:2px solid var(--color-brand)}.c-logo__link{display:block;line-height:1;font-weight:700;font-size:24px;transition:color .26s ease-in-out}.c-logo__link:active,.c-logo__link:focus,.c-logo__link:hover{color:var(--color-brand)}.c-logo__img{max-height:32px}@media (max-width:63.99em){.c-nav-wrap{display:flex;align-items:center;flex-direction:column;position:fixed;top:0;bottom:0;right:0;left:-8000px;width:100%;height:100vh;padding-top:72px;background-color:var(--bg-gray);opacity:0;visibility:hidden;transform:scale(.96)}.c-nav-wrap.is-active{opacity:1;visibility:visible;border-top:2px solid var(--color-brand);transform:scale(1);transition:all 250ms cubic-bezier(.694,0,.335,1);left:0}}@media (max-width:63.99em){.c-nav{width:100%;padding-left:32px;padding-right:32px}}@media (min-width:64em){.c-nav{display:flex;align-items:baseline;justify-content:center}}.c-nav__item{font-size:12px;font-weight:500;white-space:nowrap;letter-spacing:.5px}@media (min-width:64em){.c-nav__item:not(:last-child){margin-right:24px}}@media (max-width:63.99em){.c-nav__item{margin-bottom:16px}}.c-nav__link{display:block;transition:color .26s ease-in-out}@media (max-width:63.99em){.c-nav__link{font-size:14px;line-height:22px;font-weight:600}}.c-nav__link--current{color:var(--color-brand)}.home-template .c-nav__link--current{color:var(--color-text)}.c-nav__link:active,.c-nav__link:focus,.c-nav__link:hover{color:var(--color-brand)}.c-nav__icon{vertical-align:middle;transition:fill .26s ease-in-out;transform:translateY(3px)}.c-nav__icon:active,.c-nav__icon:focus,.c-nav__icon:hover{fill:var(--color-brand)}.c-logo{position:absolute;top:50%;left:16px;z-index:10;height:50px;width:50px;cursor:pointer;transform:translateY(-50%)}@media (min-width:40em){.c-logo{right:32px}}@media (min-width:64em){.c-logo{display:none}}.c-nav-toggle{position:absolute;top:50%;right:16px;z-index:10;height:16px;width:24px;cursor:pointer;transform:translateY(-50%)}@media (min-width:40em){.c-nav-toggle{right:32px}}@media (min-width:64em){.c-nav-toggle{display:none}}.c-nav-toggle__icon{position:absolute;left:0;height:1px;width:24px;background:var(--color-text);cursor:pointer}.c-nav-toggle__icon:after,.c-nav-toggle__icon:before{content:"";display:block;height:100%;background-color:inherit}.c-nav-toggle__icon:before{transform:translateY(16px)}.c-nav-toggle__icon:after{transform:translateY(7px)}.c-nav-toggle--close .c-nav-toggle__icon{height:2px;background-color:transparent}.c-nav-toggle--close .c-nav-toggle__icon:after,.c-nav-toggle--close .c-nav-toggle__icon:before{position:relative;visibility:visible;background:var(--color-text)}.c-nav-toggle--close .c-nav-toggle__icon:before{top:9px;transform:rotate(-45deg)}.c-nav-toggle--close .c-nav-toggle__icon:after{top:7px;transform:rotate(45deg)}.c-search{position:fixed;top:0;right:0;bottom:0;left:0;padding-top:72px;background:var(--bg-gray);z-index:-1;opacity:0;transform:scale(.96);transition:transform 250ms cubic-bezier(.694,0,.335,1),opacity 250ms cubic-bezier(.8,0,.55,.94),z-index 250ms step-end}.c-search.is-active{z-index:101;opacity:1;transform:scale(1);transition:transform 250ms cubic-bezier(.8,0,.55,.94),opacity 250ms cubic-bezier(.8,0,.55,.94),z-index 250ms step-start}.c-search__form{display:flex;justify-content:center;align-items:center;position:relative}.c-search__icon{position:absolute;left:16px;fill:var(--color-gray);width:32px;height:32px}.c-search__input[type=search]{width:100%;outline:0;margin-bottom:0;padding-left:56px;font-size:16px;line-height:24px;font-weight:600;border:0;color:var(--color-text);-webkit-appearance:none;background-color:var(--bg-color);border-radius:2px}.c-search__input[type=search]::-moz-placeholder{opacity:1;color:var(--color-gray)}.c-search__input[type=search]::placeholder{opacity:1;color:var(--color-gray)}.c-search__close{display:flex;justify-content:center;align-items:center;position:absolute;top:16px;right:16px;width:48px;height:48px;cursor:pointer;border-radius:100%;background-color:var(--bg-color)}@media (min-width:40em){.c-search__close{top:16px;right:24px}}@media (min-width:64em){.c-search__close{top:32px;right:32px}}.c-search__close .icon{fill:var(--color-gray);transition:.5s}.c-search__close:hover .icon{fill:var(--color-gray);transform:rotate(90deg)}.c-search__voice{display:flex;justify-content:center;align-items:center;position:absolute;top:16px;right:72px;width:48px;height:48px;cursor:pointer;border-radius:100%;background-color:var(--bg-color)}@media (min-width:40em){.c-search__voice{top:16px;right:72px}}@media (min-width:64em){.c-search__voice{top:32px;right:88px}}.c-search__voice .icon{fill:var(--color-gray);color:var(--color-text);transition:color .26s ease-in-out;transition:.5s}.c-search__voice:hover .icon{fill:var(--color-gray);transform:rotate(360deg)}.c-search-results{display:none;height:calc(100vh - 168px);overflow:auto;white-space:normal;margin-top:16px;margin-left:0;counter-reset:search}@media (min-width:40em){.c-search-results{height:calc(100vh - 160px)}}.c-search-result{display:flex;align-items:center;line-height:1;padding:16px 16px 16px 40px;background-color:var(--bg-color);border-radius:2px}.c-search-result:not(:last-child){margin-bottom:16px}.c-search-result:before{counter-increment:search;content:counter(search) ". ";position:relative;left:-16px;font-size:16px;font-weight:600;font-style:italic;color:var(--color-brand)}.c-search-result__media{margin-left:16px;background-color:var(--bg-color)}.c-search-result__content{flex:1}.c-search-result__image{display:block;width:64px;height:48px;background-repeat:no-repeat;background-position:center;background-size:cover;background-color:var(--bg-gray);border-radius:2px;box-shadow:4px 4px 0 var(--bg-gray)}.c-search-result__title{display:inline;font-size:16px;line-height:24px;font-weight:600;border-bottom:1px solid transparent;transition:border-bottom 250ms ease-in-out}.c-search-result:active,.c-search-result:focus,.c-search-result:hover{color:var(--color-text)}.c-search-result:active .c-search-result__title,.c-search-result:focus .c-search-result__title,.c-search-result:hover .c-search-result__title{color:var(--color-text);border-bottom:1px solid var(--color-brand)}.c-search-result__date{display:block;color:var(--color-gray);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.5px;margin-top:8px}.c-post-image-wrap{position:relative;background-color:var(--bg-gray);border-radius:8px;box-shadow:-8px 16px 24px -8px rgba(0,0,0,.08)}.c-post-image-wrap:after{content:"";display:block;height:0;width:100%;padding-bottom:56.25%}.c-post-image{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:8px}.c-post-header{margin:0 auto;max-width:800px;padding:32px 0}@media (min-width:40em){.c-post-header{padding:48px 0}}.c-post-header__title{margin-bottom:0;text-align:center;font-size:32px;line-height:40px}@media (min-width:40em){.c-post-header__title{font-size:40px;line-height:48px}}@media (min-width:64em){.c-post-header__title{font-size:48px;line-height:56px}}.c-post-header__excerpt{margin-left:auto;margin-right:auto;text-align:center;margin-top:16px;margin-bottom:0;max-width:650px;color:var(--color-gray);font-size:20px;line-height:24px}@media (min-width:64em){.c-post-header__excerpt{margin-top:24px;font-size:24px;line-height:32px}}.c-post-header__meta{display:flex;align-items:center;justify-content:center;margin-top:32px;color:var(--color-gray);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.5px}@media (min-width:64em){.c-post-header__meta{margin-top:40px}}.c-post-header__author{display:flex;align-items:center;color:var(--color-gray);font-weight:600;transition:color .26s ease-in-out}.c-post-header__author:active,.c-post-header__author:focus,.c-post-header__author:hover{color:var(--color-text)}.c-post-header__author--image-wrap{width:24px;height:24px;margin-right:16px;border-radius:100%;background-color:var(--bg-gray)}.c-post-header__author--image{-o-object-fit:cover;object-fit:cover;width:24px;height:24px;border-radius:100%;color:var(--color-brand);box-shadow:0 0 0 2.5px var(--color-white),0 0 0 3.5px}.c-post-header__date{line-height:1;padding-left:16px;margin-left:16px;box-shadow:inset 1px 0 0 0 var(--color-gray)}.c-share{display:flex}.c-share__item{flex:1;text-align:center}.c-share__item:not(:last-child){border-right:8px solid var(--bg-color)}@media (min-width:40em){.c-share__item:not(:last-child){border-right-width:16px}}.c-share__link{display:block;line-height:16px;padding:4px 8px;border-radius:4px;background-color:var(--bg-gray);transition:.5s}@media (min-width:40em){.c-share__link{padding:8px 24px}}.c-share__link:active,.c-share__link:focus,.c-share__link:hover{opacity:.8}.c-share__icon{fill:var(--color-text);vertical-align:middle}.c-post{max-width:650px;margin:0 auto}.c-post>*+*{margin-top:32px}.c-content{display:flex;align-items:center;flex-direction:column;word-break:break-word}.c-content>*{min-width:100%}.c-content>*+*{margin-top:32px}.c-content a{color:var(--color-brand)}.c-content a:active,.c-content a:focus,.c-content a:hover{text-decoration:underline}.c-content dl,.c-content fieldset,.c-content form,.c-content ol,.c-content p,.c-content pre,.c-content ul{font-size:22px;font-family:"Crimson Text",Georgia,serif;line-height:32px}.c-content table{font-size:16px;line-height:24px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.c-content hr{display:flex;align-items:center;justify-content:center;position:relative;bottom:4px;margin-bottom:0}.c-content hr:before{content:". . .";color:var(--color-text)}.c-content h1,.c-content h2,.c-content h3,.c-content h4,.c-content h5,.c-content h6{margin-top:48px}.c-content h1:first-child,.c-content h2:first-child,.c-content h3:first-child,.c-content h4:first-child,.c-content h5:first-child,.c-content h6:first-child{margin-top:0}.c-content h1+*,.c-content h2+*,.c-content h3+*,.c-content h4+*,.c-content h5+*,.c-content h6+*{margin-top:8px}.c-content h1{font-size:40px;line-height:48px}.c-content h1+h2,.c-content h1+h3,.c-content h1+h4,.c-content h1+h5,.c-content h1+h6{margin-top:16px}.c-content h2{font-size:32px;line-height:40px}.c-content h2+h3,.c-content h2+h4,.c-content h2+h5,.c-content h2+h6{margin-top:16px}.c-content h3{font-size:24px;line-height:32px}.c-content h3+h4,.c-content h3+h5,.c-content h3+h6{margin-top:16px}.c-content h4{font-size:20px;line-height:24px}.c-content h4+h5,.c-content h4+h6{margin-top:8px}.c-content h5{font-size:16px;line-height:20px}.c-content h5+h6{margin-top:8px}.c-content dd,.c-content ol,.c-content ul{padding-left:8px;padding-right:16px}.c-content dd:not(:root:root),.c-content ol:not(:root:root),.c-content ul:not(:root:root){-webkit-padding-start:16px}.kg-embed-card{display:flex;align-items:center;flex-direction:column}.kg-embed-card>*{width:100%}.kg-card figcaption{width:100%;text-align:center;padding:16px;color:var(--color-gray);font-size:12px;line-height:16px;font-weight:600;letter-spacing:.5px;background-color:var(--bg-gray)}.kg-image{margin:auto}@media (min-width:40em){.kg-width-full .kg-image{max-width:100vw;pointer-events:none}}.kg-width-wide{width:100%}.kg-width-wide .kg-image{width:100%}@media (min-width:64em){.kg-width-wide{width:100vw;max-width:1400px;padding-left:40px;padding-right:40px}}.twitter-tweet{margin-top:0!important;margin-bottom:0!important;overflow:hidden!important;width:100%!important}.twitter-tweet+script+figcaption{background-color:var(--bg-color)}.instagram-media{margin-bottom:0!important}.instagram-media+script+figcaption{background-color:var(--bg-color)}@media (min-width:64em){.kg-gallery-card{width:100vw;max-width:1400px}}.kg-gallery-container{display:flex;flex-direction:column}.kg-gallery-row{display:flex;flex-direction:row;justify-content:center}.kg-gallery-image img{width:100%;height:100%}.kg-gallery-row:not(:first-of-type){margin-top:16px}@media (min-width:64em){.kg-gallery-row:not(:first-of-type){margin-top:24px}}.kg-gallery-image:not(:first-of-type){margin-left:16px}@media (min-width:64em){.kg-gallery-image:not(:first-of-type){margin-left:24px}}.kg-bookmark-card{width:100%}a.kg-bookmark-container{display:flex;min-height:144px;color:var(--color-text);border:0;background-color:var(--bg-gray)}a.kg-bookmark-container:active,a.kg-bookmark-container:focus,a.kg-bookmark-container:hover{text-decoration:none}a.kg-bookmark-container:active .kg-bookmark-title,a.kg-bookmark-container:focus .kg-bookmark-title,a.kg-bookmark-container:hover .kg-bookmark-title{color:var(--color-brand)}.kg-card-hascaption a.kg-bookmark-container{border-bottom:1px solid var(--color-white)}.kg-bookmark-content{display:flex;flex-grow:1;flex-direction:column;align-items:flex-start;justify-content:start;padding:24px}@media (min-width:64em){.kg-bookmark-content{padding:32px}}.kg-bookmark-title{font-size:16px;line-height:20px;font-weight:700;transition:color .26s ease-in-out}.kg-bookmark-description{color:var(--color-gray);font-size:12px;line-height:16px;font-weight:500;margin-top:8px;max-height:48px;overflow-y:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.kg-bookmark-metadata{display:flex;flex-wrap:wrap;align-items:center;margin-top:8px;color:var(--color-gray);font-size:12px;line-height:16px}.kg-bookmark-publisher{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.kg-bookmark-icon{width:24px;height:24px;border-radius:24px;margin-right:8px}.kg-bookmark-author:after{content:"•";margin:0 8px}.kg-bookmark-thumbnail{position:relative;min-width:33%;max-height:100%}.kg-bookmark-thumbnail img{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}@media (max-width:39.99em){.kg-bookmark-container{flex-direction:column}.kg-bookmark-thumbnail{order:1;width:100%;min-height:160px}.kg-bookmark-content{order:2}}.c-btn{display:inline-block;padding:16px 32px;color:var(--color-white);background-color:var(--color-dark);font-size:12px;line-height:16px;font-weight:600;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";letter-spacing:.5px;text-align:center;text-transform:initial;white-space:nowrap;outline:0;border:none;cursor:pointer;border-radius:32px;transition:all .26s ease-in-out}.c-btn:active,.c-btn:focus,.c-btn:hover{color:var(--color-white);background-color:var(--color-brand);text-decoration:none}.c-btn--disabled{opacity:.5;cursor:not-allowed}.c-btn--null{cursor:default}.c-btn--null:hover{background-color:var(--color-dark)}.c-btn--full{width:100%}.c-btn--small{font-weight:500;padding:12px 16px}.c-btn--mini{font-weight:500;padding:4px 16px}.c-btn--light{color:var(--color-text);background-color:var(--bg-gray)}.c-btn--light:active,.c-btn--light:focus,.c-btn--light:hover{color:var(--color-white);background-color:var(--color-dark)}.c-btn--action{color:var(--color-white);background-color:var(--color-brand)}.c-btn--action:active,.c-btn--action:focus,.c-btn--action:hover{color:var(--color-white);background-color:var(--color-dark)}.c-btn--loading,.c-btn.loading,.c-subscribe-form .c-btn{display:flex;align-items:center;justify-content:center}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}.c-btn--loading:after,.c-btn.loading:after,.c-subscribe-form .c-btn:after{margin-left:8px;content:"";display:block;height:16px;width:16px;border:2px solid var(--color-white);border-radius:100%;border-right-color:transparent;border-top-color:transparent;-webkit-animation:spin .5s infinite linear;animation:spin .5s infinite linear}.c-color-mode-btn{display:inline-flex;border:none;outline:0;font:inherit;color:inherit;cursor:pointer;background-color:transparent}.c-color-mode-btn__icon{width:14px;height:14px;transform:translateY(3px);transition:filter .5s ease-in-out;background-image:var(--color-mode-icon);background-repeat:no-repeat;filter:var(--color-mode-icon-filter)}.c-post-card{position:relative;display:flex;width:100%;overflow:hidden;flex-direction:column;margin-bottom:32px;background-color:var(--bg-gray);border-radius:8px;box-shadow:4px 12px 40px 6px rgba(0,0,0,.09);transition:box-shadow 250ms ease-in-out}@media (min-width:64em){.c-post-card{margin-bottom:48px}}.c-post-card--no-image{justify-content:center;background-color:var(--bg-post-card)}.c-post-card-wrap{display:flex}.c-post-card__media{overflow:hidden;background-color:var(--bg-gray)}.c-post-card__image-wrap{display:block;position:relative;padding-top:75%;transition:transform .5s ease}.c-post-card__image{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.c-post-card__content{flex-grow:1;padding:24px;background-color:var(--bg-post-card)}@media (min-width:40em){.c-post-card__content{padding:32px}}.c-post-card__content--no-image{flex-grow:initial}.c-post-card__meta{display:flex;align-items:center;color:var(--color-gray);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.5px;margin-bottom:8px}.c-post-card__author{display:flex;align-items:center;color:var(--color-gray);white-space:nowrap;transition:color .26s ease-in-out}.c-post-card__author:active,.c-post-card__author:focus,.c-post-card__author:hover{color:var(--color-text)}.c-post-card__date{padding-left:8px;margin-left:8px;line-height:1;box-shadow:inset 1px 0 0 0 var(--color-gray)}@media (min-width:64em){.c-post-card__date{padding-left:16px;margin-left:16px}}.c-post-card__visibility{margin-left:8px;color:var(--color-success);text-transform:capitalize}@media (min-width:64em){.c-post-card__visibility{margin-left:16px}}.c-post-card__visibility span{display:none}.c-post-card__visibility--members .members,.c-post-card__visibility--paid .paid,.c-post-card__visibility--public .public{display:block}.c-post-card__title{display:flex;font-size:20px;line-height:24px;margin-bottom:0}@media (min-width:64em){.c-post-card__title{font-size:24px;line-height:32px}}.c-post-card__excerpt{font-size:16px;line-height:24px;font-weight:500;font-family:"Crimson Text",Georgia,serif;margin-top:8px;overflow-y:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.c-post-card__subscribe{font-size:16px;line-height:24px;font-weight:500;font-family:"Crimson Text",Georgia,serif;margin-top:8px;overflow-y:hidden;display:-webkit-box;-webkit-line-clamp:unset;-webkit-box-orient:vertical}.c-post-card__title-link{border-bottom:1px solid transparent;transition:border-bottom 250ms ease-in-out}.c-post-card:active .c-post-card__image-wrap,.c-post-card:focus .c-post-card__image-wrap,.c-post-card:hover .c-post-card__image-wrap{transform:scale(1.01)}@supports (-ms-ime-align:auto){.c-post-card:active .c-post-card__image-wrap,.c-post-card:focus .c-post-card__image-wrap,.c-post-card:hover .c-post-card__image-wrap{transform:none}}.c-post-card:active .c-post-card__title-link,.c-post-card:focus .c-post-card__title-link,.c-post-card:hover .c-post-card__title-link{color:var(--color-text)}.c-pagination{margin-bottom:32px}@media (min-width:64em){.c-pagination{margin-bottom:48px}}.c-subscribe{text-align:center;padding:24px;border-radius:8px;background-color:var(--bg-gray);background-image:var(--bg-gradient)}.c-subscribe__icon{fill:var(--color-gray)}@media (min-width:40em){.c-subscribe{padding:40px}}@media (min-width:64em){.c-subscribe{padding:56px}}.c-subscribe .c-subscribe-form__input[type=email]{background-color:var(--bg-color)}.c-subscribe-form{display:flex;flex-wrap:wrap;flex-direction:column}.c-subscribe-form .form-group{display:flex}.c-subscribe-form__btn{flex:3;border-top-left-radius:0;border-bottom-left-radius:0}.c-subscribe-form__input[type=email]{border:0;margin:0;padding-left:24px;background-color:var(--bg-gray);border-top-left-radius:32px;border-bottom-left-radius:32px;min-width:1px}.c-subscribe-form__input[type=email]:focus{border-color:transparent}.c-subscribe-form .u-alert{display:none}.c-subscribe-form .c-btn:after{display:none}.c-subscribe-form.loading .c-btn:after{display:block}.c-subscribe-form.error .u-alert--error,.c-subscribe-form.invalid .u-alert--invalid,.c-subscribe-form.success .u-alert--success{display:block}.c-social-icons{text-align:center;display:flex;justify-content:center}@media (min-width:40em){.c-social-icons{justify-content:flex-end}}.c-social-icons li{line-height:0}.c-social-icons .icon{display:flex;align-items:center;justify-content:center;fill:var(--color-dark);transition:fill .26s ease}.c-social-icons .icon:active,.c-social-icons .icon:focus,.c-social-icons .icon:hover{fill:var(--color-brand)}.c-footer{padding:40px 0;margin-top:40px;background-color:var(--bg-gray)}@media (min-width:64em){.c-footer{padding:64px 0}}.c-footer .c-subscribe-form__input[type=email]{background-color:var(--bg-color)}.c-footer__headline{margin-bottom:16px;font-size:12px;line-height:16px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.c-footer__bottom{margin-top:32px}@media (min-width:64em){.c-footer__bottom{margin-top:16px}}.c-footer__copyright{color:var(--color-dark)}.c-footer__copyright a{color:var(--color-dark);transition:color .26s ease-in-out}.c-footer__copyright a:active,.c-footer__copyright a:focus,.c-footer__copyright a:hover{color:var(--color-brand)}@media (max-width:39.99em){.c-footer__copyright{text-align:center;margin-bottom:8px}}.c-footer-list{margin-bottom:32px}.c-footer-list li{display:block;letter-spacing:0;margin-bottom:0}.c-footer-list__etiquetas{display:inline-block}.c-footer-list a{background-color:transparent;border:2px solid #111;color:#111;display:inline-block;font-weight:700;font-family:Montserrat,sans-serif;font-size:12px;letter-spacing:1px;line-height:1.5;margin:0 10px 10px 0;padding:5px 10px;text-transform:uppercase;text-decoration:none;transition:background-color .3s,border-color .3s,color .3s}.c-footer-list a:active,.c-footer-list a:focus,.c-footer-list a:hover{background-color:var(--color-brand);border-color:var(--color-brand);color:#fff}.c-related .o-grid__col{flex-grow:initial}.c-title-bar{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px;border-bottom:1px solid var(--bg-gray)}.c-title-bar__title{margin-bottom:0;padding-bottom:8px;font-size:12px;line-height:16px;font-weight:600;text-transform:uppercase;letter-spacing:1px;box-shadow:inset 0 -4px 0 0 var(--color-dark)}.c-title-bar__link{display:flex;align-items:center;transition:.5s}.c-title-bar__link:active,.c-title-bar__link:focus,.c-title-bar__link:hover{color:var(--color-brand)}.c-card-author{width:100%;display:flex;align-items:center;padding:24px;background-color:var(--bg-gray);border-radius:8px}@media (min-width:40em){.c-card-author{padding:32px}}.c-card-author-wrap{display:flex;margin-bottom:32px}@media (min-width:64em){.c-card-author-wrap{margin-bottom:48px}}.c-card-author__media{width:64px;height:64px;border-radius:100%;margin-right:16px;background-color:var(--bg-color)}.c-card-author__image{-o-object-fit:cover;object-fit:cover;width:64px;height:64px;min-width:64px;border-radius:100%;box-shadow:0 0 0 4px var(--bg-color)}.c-card-author__name{font-size:14px;line-height:22px;font-weight:700;margin-bottom:0;transition:.5s;letter-spacing:.5px}.c-card-author__bio{margin:0;color:var(--color-gray);font-size:12px;line-height:16px}.c-card-author:active,.c-card-author:focus,.c-card-author:hover{color:var(--color-brand)}@media (max-width:63.99em){.c-teaser-wrapper:not(:last-child){margin-bottom:32px}}.c-teaser{display:flex;align-items:center}.c-teaser:not(:last-child){margin-bottom:32px}@media (min-width:64em){.c-teaser:not(:last-child){margin-bottom:40px}}.c-teaser__media{margin-left:24px;background-color:var(--bg-gray)}.c-teaser__content{flex:1}.c-teaser__image{display:block;width:88px;height:72px;-o-object-fit:cover;object-fit:cover;background-color:var(--bg-gray);border-radius:4px;box-shadow:4px 4px 0 var(--bg-gray)}.c-teaser__title{display:inline;font-size:16px;line-height:24px;font-weight:700;border-bottom:1px solid transparent;transition:border-bottom .26s ease-in-out}.c-teaser__date{display:block;color:var(--color-gray);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.5px;margin-top:8px}.c-teaser:active,.c-teaser:focus,.c-teaser:hover{color:var(--color-text)}.c-teaser:active .c-teaser__title,.c-teaser:focus .c-teaser__title,.c-teaser:hover .c-teaser__title{color:var(--color-text);border-bottom:1px solid var(--color-brand)}.c-archive{text-align:center;padding:16px 0 40px}@media (min-width:40em){.c-archive{padding:24px 0 48px}}@media (min-width:64em){.c-archive{padding:32px 0 56px}}.c-archive__title{margin-bottom:0;font-size:32px;line-height:40px;color:var(--bg-color);background:linear-gradient(-45deg,#e250e5,#4b50e6,#e250e5,#4b50e6);background-size:100% 100%;-webkit-background-clip:text;-webkit-text-stroke:3px transparent}@media (min-width:40em){.c-archive__title{font-size:40px;line-height:48px}}@media (min-width:64em){.c-archive__title{font-size:48px;line-height:56px}}.c-archive__description{color:var(--color-gray);font-size:20px;line-height:24px;margin-top:8px;margin-bottom:0}@media (min-width:64em){.c-archive__description{font-size:24px;line-height:32px}}.c-author{text-align:center;padding:16px 0 40px}@media (min-width:40em){.c-author{padding:24px 0 48px}}@media (min-width:64em){.c-author{padding:32px 0 56px}}.c-author__media{margin:0 auto;border-radius:100%;margin-bottom:8px;background-color:var(--bg-gray);width:88px;height:88px}.c-author__image{-o-object-fit:cover;object-fit:cover;border-radius:100%;width:88px;height:88px;box-shadow:0 0 0 4px var(--bg-gray)}.c-author__title{font-size:24px;line-height:32px;margin-bottom:0}.c-author__bio{margin-bottom:0;margin-top:8px;color:var(--color-gray);font-size:16px;line-height:24px}.c-author__links{display:flex;justify-content:center;margin-top:16px;color:var(--color-gray)}.c-author__links-item{display:flex;align-items:center;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.c-author__links-item:not(:last-child){margin-right:8px}.c-author__links-icon{fill:var(--color-gray);vertical-align:bottom;transition:.5s}.c-author__links-icon:active,.c-author__links-icon:focus,.c-author__links-icon:hover{fill:var(--color-brand)}.c-tags{overflow:hidden;margin-bottom:-8px}@media (min-width:40em){.c-tags{margin-bottom:-16px}}.c-tags a{float:left;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.5px;padding:8px 16px;margin-right:8px;margin-bottom:8px;background-color:var(--bg-gray);border-radius:4px}@media (min-width:40em){.c-tags a{padding:8px 24px;margin-right:16px;margin-bottom:16px;line-height:24px}}.c-tags a:active,.c-tags a:focus,.c-tags a:hover{color:var(--color-gray)}.c-tag-card{display:block;position:relative;border-radius:8px;margin-bottom:32px;background-color:var(--bg-gray)}@media (min-width:64em){.c-tag-card{margin-bottom:48px}}.c-tag-card--solid{background-color:var(--color-dark)}.c-tag-card:before{position:absolute;z-index:1;top:0;bottom:0;left:0;right:0;content:"";border-radius:8px;transition:background .5s ease;background:rgba(15,14,21,.35)}.c-tag-card:after{display:block;content:"";width:100%;padding-bottom:75%}.c-tag-card__image{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:8px}.c-tag-card__title{z-index:2;text-transform:capitalize;position:relative;padding:24px;margin-bottom:0;font-size:16px;line-height:20px;font-weight:700;color:var(--color-white)}.c-tag-card:active:before,.c-tag-card:focus:before,.c-tag-card:hover:before{background-color:rgba(49,54,56,.1)}.c-hero{margin-bottom:32px;background-color:var(--bg-gray);background-image:var(--bg-gradient)}@media (min-width:40em){.c-hero{padding:32px 0}}@media (min-width:64em){.c-hero{padding:48px 0}}.c-hero__container{display:flex}@media (max-width:39.99em){.c-hero__container{flex-direction:column-reverse}}@media (min-width:40em){.c-hero__container{width:100%;display:flex;align-items:center}}.c-hero .c-subscribe-form{margin-top:16px}.c-hero .c-subscribe-form__input[type=email]{background-color:var(--bg-color)}.c-hero__content{display:flex;flex-direction:column;align-items:baseline;padding:32px 0;font-size:20px;line-height:24px}@media (min-width:64em){.c-hero__content{font-size:24px;line-height:32px;padding-right:96px}}.c-hero__content>*+*{margin-top:8px}.c-hero__content h2,.c-hero__content h3{font-size:24px;line-height:32px}@media (min-width:64em){.c-hero__content h2,.c-hero__content h3{font-size:48px;line-height:56px}}.c-hero__content p{font-size:20px;line-height:24px}@media (min-width:64em){.c-hero__content p{font-size:24px;line-height:32px}}@media (max-width:39.99em){.c-hero-image{padding-top:32px}}@media (min-width:40em){.c-hero-image{max-height:50vh;margin-left:auto}}.c-tags-list-wrap{position:relative}.c-tags-list-wrap:after{position:absolute;top:0;right:0;content:"";height:16px;width:24px;background:var(--bg-tag-list)}.c-tags-list{display:flex;align-items:baseline;padding-bottom:32px;overflow-x:scroll;-ms-overflow-style:none;scrollbar-width:none}.c-tags-list::-webkit-scrollbar{display:none}.c-tags-list:active{cursor:-webkit-grabbing;cursor:grabbing}.c-tags-list li{font-size:12px;line-height:16px;font-weight:600;white-space:nowrap;letter-spacing:.5px;padding-right:16px}@media (min-width:64em){.c-tags-list li{padding-right:24px}}.c-tags-list a{display:block;transition:color .26s ease-in-out}.c-tags-list a--current{color:var(--color-brand)}.home-template .c-tags-list a--current{color:var(--color-text)}.c-tags-list a:active,.c-tags-list a:focus,.c-tags-list a:hover{color:var(--color-brand)}@media (min-width:40em){.c-member-plans{display:flex;align-items:stretch;justify-content:center;margin:0 auto}.c-member-plan{flex:1 1 auto;display:flex;flex-direction:column}.c-member-plan+.c-member-plan{margin-left:32px}}@media (min-width:40em) and (min-width:64em){.c-member-plan+.c-member-plan{margin-left:48px}}.c-member-plan{padding:32px;margin-bottom:32px;border-radius:8px;background-color:var(--bg-gray)}.c-member-plan__header{position:relative;padding-bottom:32px;color:var(--color-gray);text-align:center}.c-member-plan__title{margin-bottom:24px;color:var(--color-text);font-size:20px;line-height:24px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.c-member-plan__amount{color:var(--color-text);font-size:32px;line-height:40px}.c-member-plan__content{flex:1 1 auto;display:flex;flex-direction:column;justify-content:space-between}.c-member-plan__list{margin:0;padding:0;margin-bottom:32px;list-style:none}.c-member-plan__list li{position:relative;margin:0;font-size:12px;line-height:16px;padding:0 0 16px 24px}.c-member-plan__list li:last-child{padding-bottom:0}.c-member-plan__list li:before{display:block;position:absolute;left:0;top:-4px;font-size:14px;line-height:22px;font-weight:600;color:var(--color-brand);content:"✓"}.c-notification{position:fixed;top:16px;right:16px;left:16px;z-index:9000;margin:0 auto;max-width:600px;padding:16px 32px 16px 16px;color:var(--color-white);font-weight:600;font-size:12px;line-height:16px;background-color:var(--color-success);transition:all .26s cubic-bezier(.19,1,.22,1) .5s;transform:translateY(-175%);visibility:hidden}.c-notification--error{background-color:var(--color-error)}.billing-cancel .c-notification--billing-update-cancel,.billing-success .c-notification--billing-update,.checkout-success .c-notification--checkout,.error-formulario .c-notification--error-formulario,.error-lectura-voz-alta .c-notification--lectura-voz-alta,.read-after .c-notification--read-after,.read-after-1 .c-notification--read-after-1,.read-after-2 .c-notification--read-after-2,.read-after-3 .c-notification--read-after-3,.read-after-borrado .c-notification--read-after-borrado,.signin-success .c-notification--signin,.signup-success .c-notification--signup,.subscribe-success .c-notification--subscribe{visibility:visible;transform:translateY(0)}.c-notification.closed{visibility:hidden;transition:all 1s cubic-bezier(.19,1,.22,1);transform:translateY(-175%)}.c-notification__close{position:absolute;top:0;right:0;bottom:0;left:0;display:block;cursor:pointer}.c-notification__close:after,.c-notification__close:before{content:"";position:absolute;top:50%;right:16px;display:block;width:18px;height:2px;background:var(--color-white)}.c-notification__close:before{transform:rotate(45deg)}.c-notification__close:after{transform:rotate(-45deg)}.c-post-upgrade-cta{position:relative;text-align:center;padding:24px;border-radius:8px;background-color:var(--bg-gray);background-image:var(--bg-gradient)}@media (min-width:40em){.c-post-upgrade-cta{padding:40px}}@media (min-width:64em){.c-post-upgrade-cta{padding:56px}}.c-post-upgrade-cta__title{font-size:24px;line-height:32px;margin-bottom:24px}.c-post-upgrade-cta .c-btn{margin-bottom:24px}.u-type-sm{font-size:14px;line-height:22px}.u-type-xs{font-size:12px;line-height:16px}.u-type-500{font-weight:500}.u-type-600{font-weight:600}.u-type-uppercase{text-transform:uppercase}.u-link{color:var(--color-brand)}.u-link:active,.u-link:focus,.u-link:hover{text-decoration:underline}.u-text-left{text-align:left}.u-text-right{text-align:right}.u-text-center{text-align:center}.u-text-justify{text-align:justify}.u-color-gray{color:var(--color-gray)}.u-color-error{color:var(--color-error)}.u-color-success{color:var(--color-success)}.u-alert{font-weight:500;font-size:12px;line-height:16px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.u-alert--success{color:var(--color-success)}.u-alert--invalid{color:var(--color-error)}.u-alert--error{color:var(--color-error)}.u-mt-8{margin-top:8px}.u-mt-16{margin-top:16px}.u-mb-16{margin-bottom:16px}.u-mb-32{margin-bottom:32px}.u-mb-64{margin-bottom:64px}.lazyload,.lazyloading{opacity:0}.lazyloaded{opacity:1;transition:opacity .5s ease}.u-hidden{display:none}.u-block{display:block}.u-hidden-visually{position:absolute;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}#cookies{display:none;visibility:hidden;opacity:0;justify-content:center;align-items:center;position:fixed;bottom:0;left:0;right:0;top:0;min-height:100%;height:auto;padding:70px 0;overflow-x:hidden;overflow-y:auto;background-color:rgba(0,0,0,.75);z-index:100;transition:all .3s}@media (max-width:39.99em){#cookies{padding:0}}#cookies .modal{background:#2a2b2b;color:#fff;border-top:2px solid var(--color-brand);transform:translateY(0);width:650px;display:inline-block;max-width:100%;transition:opacity .3s,transform .3s;margin:auto 0;padding:60px;box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}@media only screen and (max-width:480px){#cookies .modal{padding:30px 23px;min-height:100%}}#cookies .modal .contenido{display:block;font-size:16px;font-weight:100}#cookies .modal .contenido .superior h2{font-weight:100;font-size:1.6em;line-height:normal;margin-bottom:25px}#cookies .modal .contenido .superior p{margin-bottom:10px;line-height:170%;font-size:.9em}#cookies .modal .contenido .inferior{display:flex;justify-content:space-between;padding-top:30px;font-size:16px;font-weight:100}#cookies .modal .contenido .inferior button{cursor:pointer;height:50px;padding:0 30px;line-height:normal;border:none;transition:all .3s;color:#fff;position:relative;display:inline-block;background-color:var(--color-brand)}#cookies .modal .contenido .inferior button.rechazar-cookies{background-color:#1c1c1c}#cookies .modal .contenido .inferior button.rechazar-cookies:hover{background-color:#ab4242}#cookies .modal .contenido .inferior button:hover{color:#fff;background-color:#42ab9e}#cookies.activo{visibility:visible;opacity:1;display:flex}#privacidad{cursor:pointer;position:fixed;background-color:var(--color-brand);padding:5px 15px;color:#fff;display:flex;text-decoration:none;align-items:center;max-height:30px;z-index:2147483640;bottom:0;left:0;border-top-left-radius:3px;border-top-right-radius:3px;border:none;visibility:visible;opacity:1}#privacidad svg{margin-right:5px}#privacidad.oculto{display:none;visibility:hidden;opacity:0}#fotosensible{display:none;visibility:hidden;opacity:0;justify-content:center;align-items:center;position:fixed;bottom:0;left:0;right:0;top:0;min-height:100%;height:auto;padding:70px 0;overflow-x:hidden;overflow-y:auto;background-color:rgba(0,0,0,.75);z-index:100;transition:all .3s;-webkit-backdrop-filter:grayscale(1);backdrop-filter:grayscale(1)}@media (max-width:39.99em){#fotosensible{padding:0}}#fotosensible .modal{background:#2a2b2b;color:#fff;border-top:2px solid var(--color-brand);transform:translateY(0);width:650px;display:inline-block;max-width:100%;transition:opacity .3s,transform .3s;margin:auto 0;padding:60px;box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}@media only screen and (max-width:480px){#fotosensible .modal{padding:30px 23px;min-height:100%}}#fotosensible .modal .contenido{display:block;font-size:16px;font-weight:100}#fotosensible .modal .contenido .superior h2{font-weight:100;font-size:1.6em;line-height:normal;margin-bottom:25px}#fotosensible .modal .contenido .superior p{margin-bottom:10px;line-height:170%;font-size:.9em}#fotosensible .modal .contenido .inferior{display:flex;justify-content:space-between;padding-top:30px;font-size:16px;font-weight:100}#fotosensible .modal .contenido .inferior button{cursor:pointer;height:50px;padding:0 30px;line-height:normal;border:none;transition:all .3s;color:#fff;position:relative;display:inline-block;background-color:#1c1c1c}#fotosensible .modal .contenido .inferior button.anular-aviso{background-color:#1372e7}#fotosensible .modal .contenido .inferior button.anular-aviso:hover{background-color:#42ab9e}#fotosensible .modal .contenido .inferior button:hover{color:#fff;background-color:#ab4242}#fotosensible.activo{visibility:visible;opacity:1;display:flex}#fotosensibilidad{cursor:pointer;position:fixed;background-color:var(--color-brand);padding:5px 15px;color:var(--color-white);text-decoration:none;align-items:center;max-height:30px;z-index:2147483640;bottom:0;right:0;border-top-left-radius:15px;border:none;display:flex;visibility:visible;opacity:1;display:none;visibility:hidden;opacity:0}#fotosensibilidad svg{margin-right:5px}#fotosensibilidad.oculto{display:none!important;visibility:hidden!important;opacity:0!important}.tag-hash-fotosensibilidad #fotosensibilidad{display:flex;visibility:visible;opacity:1}.filtroFotosensible img{filter:grayscale(100%);-webkit-backdrop-filter:grayscale(1);backdrop-filter:grayscale(1)}@media (min-width:64em){.c-nav-wrap{display:block;display:flex;align-items:center}}.c-nav-wrap a.logo{display:flex;position:relative;margin-right:auto;margin-left:0;padding-top:16px;padding-bottom:16px;justify-content:space-between;font-weight:700;font-size:1.1em;text-transform:uppercase;letter-spacing:.3em;transition:color .26s ease-in-out;color:var(--color-text)}.c-nav-wrap a.logo span{-webkit-animation:rotacion 3s linear infinite;animation:rotacion 3s linear infinite;margin-right:-2px}.c-nav-wrap a.logo:before{content:attr(data-heading);position:absolute;color:var(--color-brand);width:100%;z-index:5;text-shadow:none;left:101%;text-align:left;-webkit-animation:flicker 3s linear infinite;animation:flicker 3s linear infinite}@media (min-width:64em){.c-nav-wrap a.logo{display:flex;visibility:visible}}@media (max-width:63.99em){.c-nav-wrap a.logo{display:none;visibility:hidden}}.c-nav-wrap ul.c-nav .c-nav__item a:not(.c-btn--action){transition:color .26s ease-in-out;color:var(--color-text)}@media (max-width:63.99em){.c-nav-wrap ul.c-nav .c-nav__item a{display:flex}}.c-nav-wrap ul.c-nav .c-nav__item a span{display:none;visibility:hidden}@media (max-width:63.99em){.c-nav-wrap ul.c-nav .c-nav__item a span{display:block;visibility:visible}}@media (max-width:63.99em){.c-nav-wrap ul.c-nav .c-nav__item button.c-color-mode-btn{padding:0}}@media (max-width:63.99em){.c-nav-wrap ul.c-nav .c-nav__item button.c-color-mode-btn span.c-color-mode-btn__icon{margin-right:10px}}@media (min-width:64em){.c-nav-wrap ul.c-nav .c-nav__item button.c-color-mode-btn span.js-mode-toggle-text{position:absolute;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;display:none;visibility:hidden}}a.logo-m{text-transform:uppercase;font-weight:700;letter-spacing:.3em;position:relative;transition:color .26s ease-in-out;color:var(--color-text)}a.logo-m span{-webkit-animation:rotacion 3s linear infinite;animation:rotacion 3s linear infinite}@media (min-width:64em){a.logo-m{display:none;visibility:hidden}}@media (max-width:63.99em){a.logo-m{display:flex;visibility:visible}}@-webkit-keyframes rotacion{from{transform:rotate3d(0,1,0,0deg);transform-origin:40%}to{transform:rotate3d(0,1,0,360deg);transform-origin:40%}}@keyframes rotacion{from{transform:rotate3d(0,1,0,0deg);transform-origin:40%}to{transform:rotate3d(0,1,0,360deg);transform-origin:40%}}@-webkit-keyframes flicker{0%,100%,19.999%,22%,62.999%,64%,64.999%,70%{opacity:.99;text-shadow:-1px -1px 0 rgba(88,15,85,.4),1px -1px 0 rgba(88,15,85,.4),-1px 1px 0 rgba(88,15,85,.4),1px 1px 0 rgba(88,15,85,.4),0 -2px 8px,0 0 2px,0 0 5px #d400ff,0 0 15px #ba44ff,0 0 2px #d400ff,0 2px 3px #000}20%,21.999%,63%,63.999%,65%,69.999%{opacity:0;text-shadow:none}}@keyframes flicker{0%,100%,19.999%,22%,62.999%,64%,64.999%,70%{opacity:.99;text-shadow:-1px -1px 0 rgba(88,15,85,.4),1px -1px 0 rgba(88,15,85,.4),-1px 1px 0 rgba(88,15,85,.4),1px 1px 0 rgba(88,15,85,.4),0 -2px 8px,0 0 2px,0 0 5px #d400ff,0 0 15px #ba44ff,0 0 2px #d400ff,0 2px 3px #000}20%,21.999%,63%,63.999%,65%,69.999%{opacity:0;text-shadow:none}}body{overflow-x:hidden}.cabecera{width:100vw;height:100vh;background-position:center center;background-size:cover;background-blend-mode:var(--blend-top,normal),var(--blend-bottom,saturation),normal;--color-v:#111016;--color:grey;margin-top:-72px}.bloque-principal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.cabecera span{display:block;margin-bottom:1.25rem;font-weight:500;letter-spacing:3px;font-size:.6875rem;text-transform:uppercase}.separador-cabecera{border-color:var(--color-text);width:2px;height:6.25rem;border-left-width:1px;margin-right:auto;margin-left:auto;border-left-style:solid;margin-bottom:2.5rem}.separador-cabecera-inferior{border-color:var(--color-text);width:2px;height:6.25rem;border-left-width:1px;margin-right:auto;margin-left:auto;border-left-style:solid;margin-top:2.5rem}.scroll-downs{position:absolute;right:0;bottom:30px;left:0;margin:auto;width:28px;height:51px;z-index:2}.mousey{width:3px;padding:8px 12px;height:35px;border:2px solid var(--color-text);border-radius:25px;opacity:.75;box-sizing:content-box}.scroller{width:3px;height:10px;border-radius:25%;background-color:var(--color-text);-webkit-animation-name:scroll;animation-name:scroll;-webkit-animation-duration:2.2s;animation-duration:2.2s;-webkit-animation-timing-function:cubic-bezier(.15,.41,.69,.94);animation-timing-function:cubic-bezier(.15,.41,.69,.94);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes scroll{0%{opacity:0}10%{transform:translateY(0);opacity:1}100%{transform:translateY(15px);opacity:0}}@keyframes scroll{0%{opacity:0}10%{transform:translateY(0);opacity:1}100%{transform:translateY(15px);opacity:0}}@media (max-width:600px){h1{font-size:3em}}.busquedaVoz{position:fixed;width:100vw;height:100vh;background-color:var(--bg-color);opacity:.9;z-index:-1;margin-top:-72px;display:none;visibility:hidden}.busquedaVoz.active{display:block;visibility:visible;z-index:105}.busquedaVoz.active.escuchando .dots .dot:nth-child(1){-webkit-animation:dotactive 1s ease-in-out infinite -.3s;animation:dotactive 1s ease-in-out infinite -.3s}.busquedaVoz.active.escuchando .dots .dot:nth-child(2){margin:0 10px;-webkit-animation:dotactive 1s ease-in-out infinite;animation:dotactive 1s ease-in-out infinite}.busquedaVoz.active.escuchando .dots .dot:nth-child(3){-webkit-animation:dotactive 1s ease-in-out .3s infinite;animation:dotactive 1s ease-in-out .3s infinite}.busquedaVoz .textoBusqueda{position:fixed;top:50%;left:50%;transform:translate(-50%,calc(-50% - 120px));font-size:1.2em;font-weight:700;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.busquedaVoz .loader{position:fixed;top:50%;left:50%;height:120px;width:120px;transform:translate(-50%,-50%)}.busquedaVoz .loader .circle{fill:none;stroke:var(--color-brand);stroke-width:4;stroke-linecap:round;transform-origin:50% 50%;-webkit-animation:circle 5s linear infinite;animation:circle 5s linear infinite}.busquedaVoz .loader .dots{opacity:0;z-index:-1;position:absolute;width:70px;height:15px;top:52px;left:26px;z-index:10;-webkit-animation:dots 1s ease-in forwards;animation:dots 1s ease-in forwards}.busquedaVoz .loader .dots .dot{float:left;width:15px;height:15px;border-radius:50%;background:#fff}.busquedaVoz .loader .dots .dot:nth-child(1){-webkit-animation:bounce 1s ease-in-out infinite -.3s;animation:bounce 1s ease-in-out infinite -.3s}.busquedaVoz .loader .dots .dot:nth-child(2){margin:0 10px;-webkit-animation:bounce 1s ease-in-out infinite;animation:bounce 1s ease-in-out infinite}.busquedaVoz .loader .dots .dot:nth-child(3){-webkit-animation:bounce 1s ease-in-out .3s infinite;animation:bounce 1s ease-in-out .3s infinite}@-webkit-keyframes circle{0%{stroke-dashoffset:0;stroke-dasharray:300 300;transform:rotate(0)}100%{stroke-dashoffset:-600;stroke-dasharray:300 300;transform:rotate(360deg)}}@keyframes circle{0%{stroke-dashoffset:0;stroke-dasharray:300 300;transform:rotate(0)}100%{stroke-dashoffset:-600;stroke-dasharray:300 300;transform:rotate(360deg)}}@-webkit-keyframes bounce{0%{transform:translateY(5px)}50%{transform:translateY(-5px)}100%{transform:translateY(5px)}}@keyframes bounce{0%{transform:translateY(5px)}50%{transform:translateY(-5px)}100%{transform:translateY(5px)}}@-webkit-keyframes microphone{0%{transform:scale(1)}25%{transform:scale(1.2);opacity:1}100%{transform:scale(.3);opacity:0}}@keyframes microphone{0%{transform:scale(1)}25%{transform:scale(1.2);opacity:1}100%{transform:scale(.3);opacity:0}}@-webkit-keyframes dots{0%,40%{transform:scale(0)}60%{transform:scale(.2);opacity:1}100%{transform:scale(1);opacity:1}}@keyframes dots{0%,40%{transform:scale(0)}60%{transform:scale(.2);opacity:1}100%{transform:scale(1);opacity:1}}@-webkit-keyframes dotactive{0%,40%{background-color:#7613e7}50%{background-color:rgba(118,19,231,.7882352941)}100%{background-color:rgba(118,19,231,.5019607843)}}@keyframes dotactive{0%,40%{background-color:#7613e7}50%{background-color:rgba(118,19,231,.7882352941)}100%{background-color:rgba(118,19,231,.5019607843)}}@-webkit-keyframes shake{0%{transform-origin:bottom center;transform:rotate(-5deg)}50%{transform-origin:bottom center;transform:rotate(5deg)}100%{transform-origin:bottom center;transform:rotate(0)}}@keyframes shake{0%{transform-origin:bottom center;transform:rotate(-5deg)}50%{transform-origin:bottom center;transform:rotate(5deg)}100%{transform-origin:bottom center;transform:rotate(0)}}#cabecera-destacado{margin-bottom:24px}@media (min-width:40em){#cabecera-destacado{margin-bottom:32px;padding-top:24px;padding-bottom:48px}}@media (min-width:64em){#cabecera-destacado{margin-bottom:48px;padding-top:32px;padding-bottom:56px}}#cabecera-destacado article{position:relative}#cabecera-destacado .article__thumb{height:600px;position:relative;margin-left:100px}#cabecera-destacado .article__thumb .background-img{background-position:50% 50%!important;background-size:cover!important;background-repeat:no-repeat!important;background-attachment:scroll!important;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border-radius:5px}#cabecera-destacado .article__meta.meta-rotate{position:absolute;top:55%;left:0;max-width:250px;transform:translate(30px,0) rotate(-90deg);-webkit-transform:translate(25px,0) rotate(-90deg);transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2}#cabecera-destacado .article__meta.meta-rotate .entry-author .author__avatar{width:40px;height:40px;border-radius:100%;overflow:hidden;margin-right:10px;display:block;float:left;text-transform:capitalize}#cabecera-destacado .article__text{background:0 0;z-index:2}#cabecera-destacado .article__text,#cabecera-destacado .article__text-2{width:345px;position:absolute;bottom:0;left:0;padding:35px 40px 25px 0;max-height:230px;overflow:hidden}@media (max-width:39.99em){#cabecera-destacado .article__text h3.article__title,#cabecera-destacado .article__text-2 h3.article__title{padding-bottom:5px}}#cabecera-destacado .article__text-2,#cabecera-destacado .article__text-2-2{background:var(--bg-color);border-radius:0 5px 0 0;color:transparent}#cabecera-destacado .article__text-2 .article__cat,#cabecera-destacado .article__text-2-2 .article__cat{color:transparent;display:none}#cabecera-destacado .article__title{margin-top:0;margin-bottom:0}#cabecera-destacado .article__title h1{display:-webkit-box;font-size:30px;line-height:1.3;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;color:var(--color-text)}#cabecera-destacado .article__title::before{background:var(--color-brand);position:absolute;content:"";bottom:0;left:0;width:40px;height:2px}#cabecera-destacado .article__cat{margin-bottom:10px;font-weight:600;font-size:small}#cabecera-destacado .article__title-2{display:-webkit-box;font-size:30px;line-height:1.3;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}#cabecera-destacado .article::before{background:var(--color-brand);position:absolute;content:"";bottom:0;left:0;width:40px;height:2px}#cabecera-destacado a.author__name{color:var(--color-text)}@media (max-width:1199px){#cabecera-destacado .article__title{font-size:26px}#cabecera-destacado .article__thumb{height:480px}}@media (max-width:991px){#cabecera-destacado .article__title{font-size:26px}#cabecera-destacado .article__thumb{height:395px}#cabecera-destacado .article__thumb{margin-left:80px}#cabecera-destacado .post-meta{position:absolute;top:50%;padding-bottom:20px;padding-left:20px;left:0;transform:translate(0,0) rotate(-90deg);-webkit-transform:translate(0,0) rotate(-90deg);transform-origin:0 0;-webkit-transform-origin:0 0}}@media (max-width:767px){.logen-block{margin-bottom:50px}#cabecera-destacado .article__title{font-size:24px}#cabecera-destacado .article__text-2 .article__title{font-size:26px}}@media (max-width:480px){#cabecera-destacado .article__text{width:100%;padding-bottom:0}#cabecera-destacado .article__meta.meta-rotate{display:none;visibility:hidden}#cabecera-destacado .article__thumb{height:450px;margin-left:0}#cabecera-destacado .article__thumb img{padding:0 0 1px 1px}}.c-footer{margin-top:200px;border-bottom:4px solid var(--color-brand);padding:0;background-color:#eef1f0!important;margin-left:0;margin-right:0}.c-footer__headline{color:var(--color-dark);font-weight:700;font-size:.9em}.c-footer__headline::after{display:block;content:"";width:30px;height:4px;background:var(--color-brand);border-radius:4px;margin-top:10px}.c-footer .c-nav__link{color:var(--color-dark)}.c-footer .c-nav__link--current{color:var(--color-dark)}.c-footer ul li{color:var(--color-dark)}.c-footer .c-footer__subscribe{align-self:center}.c-footer .c-subscribe-form__input[type=email]{border-radius:32px 32px 0 0}.c-footer .c-subscribe-form__input[type=email]::-moz-placeholder{color:var(--color-text)}.c-footer .c-subscribe-form__input[type=email]::placeholder{color:var(--color-text)}.c-footer .c-subscribe-form__input[type=email]:-ms-input-placeholder{color:var(--color-text)}.c-footer .c-subscribe-form__input[type=email]::-ms-input-placeholder{color:var(--color-text)}.c-footer .c-subscribe-form__btn{border-radius:0 0 32px 32px}.c-footer #instagram{text-align:center}.c-footer #instagram .c-footer__headline{display:none;visibility:hidden;text-align:left;margin-bottom:2em}.c-footer .c-footer__instagram{display:inline-flex;flex-wrap:wrap;list-style:none;margin-top:-20px;align-items:center;justify-content:center}.c-footer .c-footer__instagram li{flex:1 1 80px;margin:5px 5px 0 0;overflow:hidden}.c-footer .c-footer__instagram li a{position:relative;display:flex;transition:4s}.c-footer .c-footer__instagram li a .icon{position:absolute;top:50%;left:50%;z-index:999;transform:translate(-50%,-50%) scale(2.5);color:var(--color-brand);opacity:0;visibility:hidden;transition:all .5s}.c-footer .c-footer__instagram li a img{display:block;max-width:100%;font-style:italic;border-radius:2px;transition:transform .9s ease-in-out;object-fit:cover;-o-object-fit:cover}.c-footer .c-footer__instagram li a div.activo{height:100%;width:100%;position:absolute;top:0;left:0;z-index:9;background-color:#eef1f0;opacity:0;transition:.5s}.c-footer .c-footer__instagram li a:hover div.activo{opacity:.8}.c-footer .c-footer__instagram li a:hover img{transform:scale(1.1,1.1)}.c-footer .c-footer__instagram li a:hover .icon{opacity:.7;visibility:visible}.c-footer>div{position:relative;padding:64px 64px 20px 64px}body.avif .c-footer>div::after{background:url(/assets/img/bg-footer.avif) no-repeat scroll bottom}body:not(.avif).webp .c-footer>div::after{background:url(/assets/img/bg-footer.webp) no-repeat scroll bottom}.c-footer>div::after{position:absolute;height:200px;width:100%;background:url(/assets/img/bg-footer.png) no-repeat scroll bottom;content:"";left:0;bottom:100%}@media (max-width:1100px){.c-footer>div::after{background-size:contain}}@media (max-width:64em){#instagram .c-footer__headline{display:block!important;visibility:visible!important}}@media (min-width:20em){#instagram ul{margin:0 -40px}#instagram ul li{display:none;visibility:hidden}#instagram ul li:nth-child(-n+3){display:block;visibility:visible}#instagram ul li img{height:auto;width:100px}}@media (min-width:40em){#instagram ul{margin:0 -40px}#instagram ul li{display:none;visibility:hidden}#instagram ul li:nth-child(-n+3){display:block;visibility:visible}#instagram ul li img{height:100px;width:auto}}@media (min-width:64em){#instagram ul{margin:0}#instagram ul li{display:block;visibility:visible}#instagram ul li img{height:186px;width:auto}}#particles-js{width:100%;height:100%;position:fixed}.count-particles{background:#002;position:absolute;top:48px;left:0;width:80px;color:#13e8e9;font-size:.8em;text-align:left;text-indent:4px;line-height:14px;padding-bottom:2px;font-family:Helvetica,Arial,sans-serif;font-weight:700}.particles{background:#002}.home-template #particles-js{z-index:1}.superior--part{z-index:2}.enlace{position:relative}.enlace--anim{overflow:hidden;padding:7px 0}.link__graphic{position:absolute;top:0;left:0;pointer-events:none;fill:none;stroke:var(--color-text);stroke-width:1px}.link__graphic--slide{opacity:0;top:-3px;stroke-width:2px;transition:transform .7s;transition-timing-function:cubic-bezier(0,.25,.5,1)}.enlace:active .link__graphic--slide,.enlace:hover .link__graphic--slide{transform:translate3d(-66.6%,0,0);opacity:1}.c-share__icon_inverter{fill:var(--bg-gray);vertical-align:middle}.c-share .c-twitter{background-color:#55acee}.c-share .c-facebook{background-color:#3b5999}.c-share .c-linkedin{background-color:#0077b5}.c-share .c-pinterest{background-color:#bd081c}.c-share .c-email{background-color:#f57d00}.c-share .c-whatsapp{background-color:#25d366}html{scroll-behavior:smooth}#carga{height:100vh;width:100vw;animation-name:carga;animation-duration:1.5s;animation-fill-mode:forwards;-webkit-animation-name:carga;-webkit-animation-duration:1.5s;-webkit-animation-fill-mode:forwards;-moz-animation-name:carga;-moz-animation-duration:1.5s;-moz-animation-fill-mode:forwards}@keyframes carga{0%{opacity:0;transform:translateY(100vh);visibility:hidden;transform:scale(0)}75%{transform:translateY(0);transform:scale(1)}100%{opacity:1;visibility:visible;transform:translateY(0);transform:scale(1)}}@-webkit-keyframes carga{0%{opacity:0;-webkit-transform:translateY(100vh);visibility:hidden;-webkit-transform:scale(0)}75%{-webkit-transform:translateY(0);-webkit-transform:scale(1)}100%{opacity:1;visibility:visible;-webkit-transform:translateY(0);-webkit-transform:scale(1)}}body::before{content:"mobile";display:none;visibility:hidden}@media only screen and (min-width:1170px){body::before{content:"desktop"}}.c-card-category:hover .shadow{opacity:1;transition:all .2s ease-out}.c-card-category .c-tag-card__title{bottom:0;position:absolute;font-size:1.4em}.c-card-category .c-category-shadow{filter:blur(10px);-webkit-filter:blur(10px);-moz-filter:blur(10px);position:absolute;top:10px;left:-6px;right:-6px;bottom:-10px;z-index:-1;width:auto;opacity:0;transition:all .21s ease-out;will-change:opacity}.c-card-category .c-category-count{width:45px;height:45px;padding-top:10px;text-align:center;margin:15px;border-radius:50%;background:rgba(255,255,255,.54);position:absolute;right:0;top:0}.post-template .post-body{background-color:var(--bg-color)}body.zoom-overlay-open .superior--part{z-index:auto}mark{background-color:var(--color-brand);color:#fff;padding:0 5px}#dynamictoc{background-color:var(--color-text);padding:20px;border-radius:5px;border-top:4px solid var(--color-brand)}#dynamictoc h2{color:var(--bg-gray);border-bottom:1px solid}#dynamictoc ul{color:var(--bg-gray)}#dynamictoc ul a{color:var(--bg-gray)}.read-more{display:flex;align-items:flex-end;-ms-flex-pack:justify;position:relative;z-index:2;font-size:12px;line-height:16px;font-weight:500;letter-spacing:.5px;margin-top:16px;padding-top:16px;float:right}body.localstorage .read-later{display:flex!important;visibility:visible!important}.read-later{align-items:flex-end;-ms-flex-pack:justify;position:relative;cursor:pointer;z-index:2;font-size:12px;line-height:16px;font-weight:500;letter-spacing:.5px;margin-top:16px;padding-top:16px;float:left;background:0 0;border:none;color:var(--color-text)}.read-later svg{margin-right:5px}.c-post-card__media .categoria{text-transform:capitalize;position:absolute;z-index:3;margin:1em 0 1em;background-color:#3586cb;color:var(--color-dark);padding:5px;border-radius:0 5px 5px 0;font-weight:700!important;font-size:.8em}#disqus_thread{background-color:var(--color-dark);padding:2em;border-top:4px solid var(--color-brand);border-radius:5px}body:not(.speechSynthesis) #control-voz{display:none;visibility:hidden}#control-voz{position:-webkit-sticky;position:sticky;top:0}.c-tag-card:hover .shadow{opacity:1;transition:all .2s ease-out}.c-tag-card .c-tag-shadow{filter:blur(10px);-webkit-filter:blur(10px);-moz-filter:blur(10px);position:absolute;top:10px;left:-6px;right:-6px;bottom:-10px;z-index:-1;width:auto;opacity:0;transition:all .21s ease-out;will-change:opacity;background-size:cover;background-position:center}:root{--c-dot-1:#f9d71c;--c-dot-2:#ff005c;--c-dot-3:#FB7209;--c-dot-4:#9fc164;--c-dot-5:#80ABFF;--dot-anim-duration:200s;--c-gray-light:#EFEFEF;--c-border-light:var(--c-gray-light)}[data-user-color-scheme=dark]{--c-dot-1:#f9d71c;--c-dot-2:#ff005c;--c-dot-3:#FB7209;--c-dot-4:#9fc164;--c-dot-5:#80ABFF;--dot-anim-duration:200s;--c-gray-light:#454854;--c-border-light:var(--c-gray-light)}.author-template{padding-top:48px}.author-template .o-wrapper{margin-top:4rem;padding-top:20px}.author-template .o-wrapper .o-grid{align-items:center;margin-top:7rem;margin-bottom:12rem;max-width:1170px;width:100%;padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto}.author-template .o-wrapper .o-grid.has-cover-image{flex-direction:row-reverse}.author-template .o-wrapper .o-grid .c-author__links{margin-top:2rem;align-items:center;display:flex;flex-wrap:wrap;justify-content:left}.intro-description{font-size:1.5rem}.cover-img-container{max-width:400px;margin-left:auto}.cover-img-wrap{padding-bottom:100%;position:relative;border-radius:50%;margin:0 auto}.cover-img-wrap::before{content:"";width:128%;height:128%;top:-14%;left:-14%;z-index:-2;position:absolute;border:2px dashed var(--c-border-light);border-radius:50%}.cover-img-wrap::after{content:"";width:168%;height:168%;top:-34%;left:-34%;z-index:-2;position:absolute;border:2px dashed var(--c-border-light);border-radius:50%}.cover-img-wrap img{width:100%;height:100%;position:absolute;-o-object-fit:cover;object-fit:cover;border-radius:50%}.dot-parent{position:absolute;border-radius:50%;z-index:-1}.dot-1{top:-14%;left:-14%;width:128%;height:128%;-webkit-animation:spin var(--dot-anim-duration) linear infinite;animation:spin var(--dot-anim-duration) linear infinite;-webkit-animation-delay:calc(var(--dot-anim-duration)/ -8);animation-delay:calc(var(--dot-anim-duration)/ -8)}.dot-1 .planeta{top:-2.5%;left:47.5%}.dot-2{top:-14%;left:-14%;width:128%;height:128%;-webkit-animation:spin var(--dot-anim-duration) linear infinite;animation:spin var(--dot-anim-duration) linear infinite;-webkit-animation-delay:calc(var(--dot-anim-duration)/ -1.81);animation-delay:calc(var(--dot-anim-duration)/ -1.81)}.dot-2 .planeta{top:-3%;left:47%}.dot-3{top:-34%;left:-34%;width:168%;height:168%;-webkit-animation:spin var(--dot-anim-duration) linear infinite;animation:spin var(--dot-anim-duration) linear infinite;-webkit-animation-delay:calc(var(--dot-anim-duration)/ -3.33);animation-delay:calc(var(--dot-anim-duration)/ -3.33)}.dot-3 .planeta{top:-2.5%;left:47.5%}.dot-4{top:-34%;left:-34%;width:168%;height:168%;-webkit-animation:spin var(--dot-anim-duration) linear infinite;animation:spin var(--dot-anim-duration) linear infinite;-webkit-animation-delay:calc(var(--dot-anim-duration)/ -1.08);animation-delay:calc(var(--dot-anim-duration)/ -1.08)}.dot-4 .planeta{top:-2.5%;left:47.5%}.dot-5{top:-34%;left:-34%;width:168%;height:168%;-webkit-animation:spin var(--dot-anim-duration) linear infinite;animation:spin var(--dot-anim-duration) linear infinite;-webkit-animation-delay:calc(var(--dot-anim-duration)/ -1.48);animation-delay:calc(var(--dot-anim-duration)/ -1.48)}.dot-5 .planeta{top:-3%;left:47%}.planeta{width:6%;height:6%;position:absolute;border-radius:50%}.planeta .wrap{width:100%;height:100%;position:absolute;border-radius:50%;-webkit-animation:rotatePlanet 100s infinite linear;animation:rotatePlanet 100s infinite linear}.planeta .wrap .background{-webkit-animation:translateBackground 160s infinite linear;animation:translateBackground 160s infinite linear;height:100%;width:100%;position:absolute;border-radius:50%}.planeta .wrap .clouds{width:100%;height:100%;position:absolute;border-radius:50%;-webkit-animation:translateBackground 120s infinite linear;animation:translateBackground 120s infinite linear}.planeta .mask{width:100%;height:100%;position:absolute;border-radius:50%}.planeta.marte .wrap .background{background:url(/assets/img/textura_marte.jpg) repeat-x;background-size:cover}.planeta.marte .wrap .clouds{background:url(/assets/img/textura_nubes.jpg) repeat-x;opacity:.4;background-size:cover}.planeta.marte .mask{box-shadow:none}.planeta.neptuno .wrap .background{background:url(/assets/img/textura_neptuno.jpg) repeat-x;background-size:cover}.planeta.neptuno .mask{box-shadow:inset -10px -10px 40px rgba(15,43,86,.71),inset 10px 10px 30px -10px rgba(159,189,255,.4)}.planeta.urano .wrap .background{background:url(/assets/img/textura_urano.jpg) repeat-x;background-size:cover}.planeta.urano .mask{box-shadow:inset -10px -10px 40px rgba(15,86,70,.62),inset 10px 10px 30px -10px rgba(159,255,175,.32)}.planeta.mercurio .wrap .background{background:url(/assets/img/textura_mercurio.jpg) repeat-x;background-size:cover}.planeta.mercurio .mask{box-shadow:inset -10px -10px 40px rgba(206,206,206,.22),inset 10px 10px 30px -10px rgba(145,145,145,.08)}.planeta.venus .wrap .background{background:url(/assets/img/textura_venus.jpg) repeat-x;background-size:cover}.planeta.venus .wrap .clouds{background:url(/assets/img/textura_venus_atmosf.jpg) repeat-x;opacity:.4;background-size:cover}.planeta.venus .mask{box-shadow:inset -10px -10px 40px rgba(172,107,47,.42),inset 10px 10px 30px -10px rgba(183,108,48,.45)}.planeta.tierra .wrap .background{background:url(/assets/img/textura_tierra.jpg) repeat-x;background-size:cover}.planeta.tierra .wrap .clouds{background:url(/assets/img/textura_nubes.jpg) repeat-x;opacity:.3;background-size:cover}.planeta.tierra .mask{box-shadow:none}[data-user-color-scheme=dark] .planeta.venus{box-shadow:-10px -10px 40px rgba(86,48,15,.71),10px 10px 30px -10px rgba(255,204,159,.4)}[data-user-color-scheme=dark] .planeta.tierra .mask{box-shadow:inset -10px -10px 40px rgba(28,48,89,.3),inset 10px 10px 30px -10px rgba(46,85,152,.17)}[data-user-color-scheme=dark] .planeta.marte .mask{box-shadow:inset -10px -10px 40px rgba(128,25,25,.55),inset 10px 10px 30px -10px rgba(255,177,159,.4)}@media screen and (max-width:1023px){.home-cover-area{overflow:hidden;margin-top:0!important;margin-bottom:0!important}.cover-img-container{margin:0 auto 2rem;max-width:300px}.heading-large,.intro-description{text-align:center}.c-author__links{justify-content:center!important}.cover-subscribe-form{margin-left:auto;margin-right:auto}.home-cover-area .social-links-wrap{justify-content:center}}@media screen and (max-width:575px){.author-template .o-wrapper .o-grid{margin-top:4rem!important}.cover-img-container{max-width:180px}}@media screen and (max-width:767px){.intro-description{font-size:1.25rem}}@media screen and (min-width:768px){.cover-subscribe-form{max-width:460px}}@-webkit-keyframes translateBackground{0%{background-position-x:0}100%{background-position-x:-600px}}@keyframes translateBackground{0%{background-position-x:0}100%{background-position-x:-600px}}@-webkit-keyframes rotatePlanet{0%{transform:rotateZ(0)}100%{transform:rotateZ(-360deg)}}@keyframes rotatePlanet{0%{transform:rotateZ(0)}100%{transform:rotateZ(-360deg)}}.c-notification--alert-nojs{z-index:3;position:-webkit-sticky;position:sticky;background-color:#5d97ff;top:5px;visibility:visible;transform:translateY(0)}.c-notification--alert-nojs a{font-weight:700;color:var(--color-dark)}.page-contacto canvas{position:absolute;padding-top:100px;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.page-contacto .formulario{position:relative;display:grid;height:100%;margin:0;place-items:center;max-width:100%;padding:2.5rem}.page-contacto .formulario *{box-sizing:border-box}.page-contacto .formulario :root{--focus-head-color:var(--color-brand);--focus-tail-color:var(--color-brand)}.page-contacto .formulario form{margin:auto;width:100%;max-width:400px}.page-contacto .formulario h1{font-size:3rem;font-weight:700;text-align:center;margin:0 0 .5rem 0}.page-contacto .formulario h3{font-size:1rem;font-weight:400;margin:0 0 2rem 0;text-align:center;line-height:1.5rem}.page-contacto .formulario a{color:var(--color-brand);text-decoration:none}.page-contacto .formulario label{color:var(--color-text)}.page-contacto .formulario textarea#mensaje{margin-bottom:0;resize:none}.page-contacto .formulario input[type=email],.page-contacto .formulario input[type=text],.page-contacto .formulario textarea#mensaje{display:block;width:100%;margin:.5rem 0 1rem 0;padding:.5rem;font-size:1rem;border:0;border-radius:.125rem .25rem;color:var(--color-text);background-color:var(--c-border-light)}.page-contacto .formulario .checkbox{margin:.5rem 0}.page-contacto .formulario input[type=checkbox]{margin-right:.5rem}.page-contacto .formulario button{display:block;padding:.5rem 1rem;border:0;border-radius:.125rem .25rem;background-color:var(--color-brand);color:#fff;margin:2rem 0 0 auto;cursor:pointer}.page-contacto .formulario button:focus,.page-contacto .formulario input:focus,.page-contacto .formulario textarea:focus{outline:0}@media (max-width:63.99em){.c-featured-wrapper:not(:last-child){margin-bottom:32px}}.c-featured{display:flex;align-items:center}.c-featured:not(:last-child){margin-bottom:32px}@media (min-width:64em){.c-featured:not(:last-child){margin-bottom:40px}}.c-featured__media{margin-right:24px;background-color:var(--bg-gray)}.c-featured__content{flex:1}.c-featured__image{display:block;width:88px;height:72px;-o-object-fit:cover;object-fit:cover;background-color:var(--bg-gray);border-radius:4px;box-shadow:4px 4px 0 var(--bg-gray)}.c-featured__title{display:inline;font-size:16px;line-height:24px;font-weight:700;border-bottom:1px solid transparent;transition:border-bottom .26s ease-in-out}.c-featured__date{display:block;color:var(--color-gray);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.5px;margin-top:8px}.c-featured:active,.c-featured:focus,.c-featured:hover{color:var(--color-text)}.c-featured:active .c-featured__title,.c-featured:focus .c-featured__title,.c-featured:hover .c-featured__title{color:var(--color-text);border-bottom:1px solid var(--color-brand)}.control-voz{position:-webkit-sticky;position:sticky;top:0;left:5px;border-radius:5px;-webkit-backdrop-filter:saturate(180%) blur(2px);backdrop-filter:saturate(180%) blur(3px);z-index:10}.control-voz button.activador{all:unset;display:flex;width:100%;min-height:96px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(124,139,154,.25);text-align:center;justify-content:center;flex-flow:column-reverse;cursor:pointer}.control-voz button.activador:hover{background-color:var(--color-brand)}.control-voz #lector{display:none;visibility:hidden}.control-voz.activo button.activador{display:none;visibility:hidden}.control-voz.activo #lector{display:flex;visibility:visible}.kg-header-card{width:100vw}@-webkit-keyframes spin{100%{transform:rotate(360deg)}}@keyframes spin{100%{transform:rotate(360deg)}}.icon{position:relative;display:inline-block;width:25px;height:25px;overflow:hidden;fill:currentColor}.icon__cnt{width:100%;height:100%;background:inherit;fill:inherit;pointer-events:none;transform:translateX(0);-ms-transform:translate(.5px,-.3px)}.icon--m{width:50px;height:50px}.icon--l{width:100px;height:100px}.icon--xl{width:150px;height:150px}.icon--xxl{width:200px;height:200px}.icon__spinner{position:absolute;top:0;left:0;width:100%;height:100%}.icon--ei-spinner .icon__spinner,.icon--ei-spinner-2 .icon__spinner{-webkit-animation:spin 1s steps(12) infinite;animation:spin 1s steps(12) infinite}.icon--ei-spinner-3 .icon__spinner{-webkit-animation:spin 1.5s linear infinite;animation:spin 1.5s linear infinite}.icon--ei-sc-facebook{fill:#3b5998}.icon--ei-sc-github{fill:#333}.icon--ei-sc-google-plus{fill:#dd4b39}.icon--ei-sc-instagram{fill:#3f729b}.icon--ei-sc-linkedin{fill:#0976b4}.icon--ei-sc-odnoklassniki{fill:#ed812b}.icon--ei-sc-skype{fill:#00aff0}.icon--ei-sc-soundcloud{fill:#f80}.icon--ei-sc-tumblr{fill:#35465c}.icon--ei-sc-twitter{fill:#55acee}.icon--ei-sc-vimeo{fill:#1ab7ea}.icon--ei-sc-vk{fill:#45668e}.icon--ei-sc-youtube{fill:#e52d27}.icon--ei-sc-pinterest{fill:#bd081c}.icon--ei-sc-telegram{fill:#08c}.c-post-card__date_outs{box-shadow:none;margin:0;padding:0}@media (min-width:64em){.c-post-card-wrap:nth-child(1)+.ads-subscribe,.c-post-card-wrap:nth-child(11)+.ads-subscribe,.c-post-card-wrap:nth-child(12)+.ads-subscribe,.c-post-card-wrap:nth-child(13)+.ads-subscribe,.c-post-card-wrap:nth-child(2)+.ads-subscribe,.c-post-card-wrap:nth-child(3)+.ads-subscribe,.c-post-card-wrap:nth-child(6)+.ads-subscribe,.c-post-card-wrap:nth-child(7)+.ads-subscribe,.c-post-card-wrap:nth-child(8)+.ads-subscribe{width:33.3333333333%}}.comentarios{padding-left:8px;margin-left:8px;line-height:1;box-shadow:inset 1px 0 0 0 var(--color-gray)}@media (min-width:64em){.comentarios{padding-left:16px;margin-left:16px}}.grid__cat{margin:1em 24px;padding-top:32px;border-radius:5px}@media (max-width:63.99em){.grid__cat{padding:32px 20px 0 20px;margin:1em 0}}.c-cat__title{text-align:center;font-size:1.5em;padding:0 0 .5em;text-transform:uppercase;font-weight:600;word-break:break-word;line-height:50px}.c-cat-card{display:block;position:relative;border-radius:8px;margin-bottom:32px;background-color:var(--bg-gray)}@media (min-width:64em){.c-cat-card{margin-bottom:48px}}.c-cat-card--solid{background-color:var(--color-dark)}.c-cat-card:before{position:absolute;z-index:1;top:0;bottom:0;left:0;right:0;content:"";border-radius:8px;transition:background .5s ease;background:rgba(15,14,21,.35)}.c-cat-card:after{display:block;content:"";width:100%;padding-bottom:75%}.c-cat-card__image{width:65px;height:65px;border-radius:8px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;margin:auto}.c-cat-card__title{position:relative;margin:.5em 0 0 0;text-align:center;text-transform:capitalize}.c-cat-card:active:before,.c-cat-card:focus:before,.c-cat-card:hover:before{background-color:rgba(49,54,56,.1)}.c-cat-list-wrap{position:relative}.c-cat-list-wrap:after{position:absolute;top:0;right:0;content:"";height:16px;width:24px}.c-cat-list{display:flex;display:flex;align-items:baseline;justify-content:center;padding-bottom:32px;overflow-x:scroll;-ms-overflow-style:none;scrollbar-width:none}@media (max-width:63.99em){.c-cat-list{justify-content:space-between}}.c-cat-list::-webkit-scrollbar{display:none}.c-cat-list:active{cursor:-webkit-grabbing;cursor:grabbing}.c-cat-list li{font-size:12px;line-height:16px;font-weight:600;white-space:nowrap;letter-spacing:.5px;padding-right:16px}@media (min-width:64em){.c-cat-list li{padding-right:24px}}.c-cat-list a{display:block;transition:color .26s ease-in-out}.c-cat-list a--current{color:var(--color-brand)}.home-template .c-cat-list a--current{color:var(--color-text)}.c-cat-list a:active,.c-cat-list a:focus,.c-cat-list a:hover{color:var(--color-brand)}@-webkit-keyframes introjspulse{0%{transform:scale(0);opacity:0}25%{transform:scale(0);opacity:.1}50%{transform:scale(.1);opacity:.3}75%{transform:scale(.5);opacity:.5}100%{transform:scale(1);opacity:0}}@keyframes introjspulse{0%{transform:scale(0);opacity:0}25%{transform:scale(0);opacity:.1}50%{transform:scale(.1);opacity:.3}75%{transform:scale(.5);opacity:.5}100%{transform:scale(1);opacity:0}}.introjs-overlay{position:absolute;box-sizing:content-box;z-index:999999;opacity:0;transition:all .3s ease-out}.introjs-showElement{z-index:9999999!important}tr.introjs-showElement>td{z-index:9999999!important;position:relative}tr.introjs-showElement>th{z-index:9999999!important;position:relative}.introjs-disableInteraction{z-index:99999999!important;position:absolute;background-color:#fff;opacity:0}.introjs-relativePosition{position:relative}.introjs-helperLayer{box-sizing:content-box;position:absolute;z-index:9999998;border-radius:4px;transition:all .3s ease-out}.introjs-helperLayer *{box-sizing:content-box}.introjs-helperLayer :before{box-sizing:content-box}.introjs-helperLayer :after{box-sizing:content-box}.introjs-tooltipReferenceLayer{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif;box-sizing:content-box;position:absolute;visibility:hidden;z-index:100000000;background-color:transparent;transition:all .3s ease-out}.introjs-tooltipReferenceLayer *{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif}.introjs-helperNumberLayer{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif;color:#9e9e9e;text-align:center;padding-top:10px;padding-bottom:10px}.introjs-arrow{border:5px solid transparent;content:"";position:absolute}.introjs-arrow.top{top:-10px;left:10px;border-bottom-color:#fff}.introjs-arrow.top-right{top:-10px;right:10px;border-bottom-color:#fff}.introjs-arrow.top-middle{top:-10px;left:50%;margin-left:-5px;border-bottom-color:#fff}.introjs-arrow.right{right:-10px;top:10px;border-left-color:#fff}.introjs-arrow.right-bottom{bottom:10px;right:-10px;border-left-color:#fff}.introjs-arrow.bottom{bottom:-10px;left:10px;border-top-color:#fff}.introjs-arrow.bottom-right{bottom:-10px;right:10px;border-top-color:#fff}.introjs-arrow.bottom-middle{bottom:-10px;left:50%;margin-left:-5px;border-top-color:#fff}.introjs-arrow.left{left:-10px;top:10px;border-right-color:#fff}.introjs-arrow.left-bottom{left:-10px;bottom:10px;border-right-color:#fff}.introjs-tooltip{box-sizing:content-box;position:absolute;visibility:visible;background-color:#fff;color:#000;min-width:250px;max-width:300px;border-radius:5px;box-shadow:0 3px 30px rgba(33,33,33,.3);transition:opacity .1s ease-out}.introjs-tooltiptext{padding:20px}.introjs-tooltip-title{font-size:18px;margin:0;padding:0;font-weight:700;float:left;line-height:32px}.introjs-tooltip-header{padding-left:20px;padding-right:20px;padding-top:10px}.introjs-tooltip-header:after{content:".";visibility:hidden;display:block;height:0;clear:both}.introjs-tooltipbuttons{border-top:1px solid #e0e0e0;padding:10px;text-align:right;white-space:nowrap}.introjs-tooltipbuttons:after{content:"";visibility:hidden;display:block;height:0;clear:both}.introjs-button{box-sizing:content-box;position:relative;overflow:visible;display:inline-block;padding:.5rem 1rem;border:1px solid #bdbdbd;text-decoration:none;text-shadow:1px 1px 0 #fff;font-size:14px;color:#424242;white-space:nowrap;cursor:pointer;outline:0;background-color:#f4f4f4;border-radius:.2em;zoom:1}.introjs-button:hover{outline:0;text-decoration:none;border-color:#9e9e9e;background-color:#e0e0e0;color:#212121}.introjs-button:focus{outline:0;text-decoration:none;background-color:#eee;box-shadow:0 0 0 .2rem rgba(158,158,158,.5);border:1px solid #616161;color:#212121}.introjs-button:active{outline:0;text-decoration:none;background-color:#e0e0e0;border-color:#9e9e9e;color:#212121}.introjs-button::-moz-focus-inner{padding:0;border:0}.introjs-skipbutton{box-sizing:content-box;color:#616161;float:right;font-size:20px;cursor:pointer;font-weight:700;line-height:1;text-align:center;padding:7px 10px}.introjs-skipbutton:focus,.introjs-skipbutton:hover{color:#212121;outline:0;text-decoration:none}.introjs-prevbutton{float:left}.introjs-nextbutton{float:right}.introjs-disabled{color:#9e9e9e;border-color:#bdbdbd;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-disabled:focus,.introjs-disabled:hover{color:#9e9e9e;border-color:#bdbdbd;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-hidden{display:none}.introjs-bullets{text-align:center;padding-top:10px;padding-bottom:10px}.introjs-bullets ul{box-sizing:content-box;clear:both;margin:0 auto 0;padding:0;display:inline-block}.introjs-bullets ul li{box-sizing:content-box;list-style:none;float:left;margin:0 2px}.introjs-bullets ul li a{transition:width .1s ease-in;box-sizing:content-box;display:block;width:6px;height:6px;background:#ccc;border-radius:10px;text-decoration:none;cursor:pointer}.introjs-bullets ul li a:focus,.introjs-bullets ul li a:hover{width:15px;background:#999;text-decoration:none;outline:0}.introjs-bullets ul li a.active{width:15px;background:#999}.introjs-progress{box-sizing:content-box;overflow:hidden;height:10px;margin:10px;border-radius:4px;background-color:#e0e0e0}.introjs-progressbar{box-sizing:content-box;float:left;width:0%;height:100%;font-size:10px;line-height:10px;text-align:center;background-color:#08c}.introjsFloatingElement{position:absolute;height:0;width:0;left:50%;top:50%}.introjs-fixedTooltip{position:fixed}.introjs-hint{box-sizing:content-box;position:absolute;background:0 0;width:20px;height:15px;cursor:pointer}.introjs-hint:focus{border:0;outline:0}.introjs-hint:hover>.introjs-hint-pulse{border:5px solid rgba(60,60,60,.57)}.introjs-hidehint{display:none}.introjs-fixedhint{position:fixed}.introjs-hint-pulse{box-sizing:content-box;width:10px;height:10px;border:5px solid rgba(60,60,60,.27);border-radius:30px;background-color:rgba(136,136,136,.24);z-index:10;position:absolute;transition:all .2s ease-out}.introjs-hint-no-anim .introjs-hint-dot{-webkit-animation:none;animation:none}.introjs-hint-dot{box-sizing:content-box;border:10px solid rgba(146,146,146,.36);background:0 0;border-radius:60px;height:50px;width:50px;-webkit-animation:introjspulse 3s ease-out;animation:introjspulse 3s ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;position:absolute;top:-25px;left:-25px;z-index:1;opacity:0}header a.lista-lectura svg{vertical-align:middle}header a.lista-lectura span.pendientes-lectura{padding:.35em .45em;font-size:.75em;font-weight:700;line-height:1;color:#fff;background-color:var(--color-brand);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transform:translate(-50%,-50%);top:0;left:100%}@media (max-width:63.99em){header a.lista-lectura span.pendientes-lectura{padding:.35em .55em}}@media (min-width:64em){header a.lista-lectura span.pendientes-lectura__activo{display:inline-block!important;visibility:visible!important}}ul.lectura-Pendiente{margin-bottom:32px}@media (min-width:64em){ul.lectura-Pendiente{margin-bottom:40px}}ul.lectura-Pendiente .pendiente{display:flex;align-items:center;background-color:var(--bg-transparent-2);-webkit-backdrop-filter:saturate(180%) blur(2px);backdrop-filter:saturate(180%) blur(2px);padding:20px;border-radius:5px;margin-bottom:1em;justify-content:space-between;overflow:hidden;transition:.6s}ul.lectura-Pendiente .pendiente a{display:flex}ul.lectura-Pendiente .pendiente:not(:last-child){margin-bottom:1em}ul.lectura-Pendiente .pendiente:hover{transform:scale(1.04)}ul.lectura-Pendiente .pendiente__media{margin-right:24px}ul.lectura-Pendiente .pendiente__content{flex:1}ul.lectura-Pendiente .pendiente__image{display:block;width:88px;height:72px;-o-object-fit:cover;object-fit:cover;background-color:var(--bg-gray);border-radius:4px;box-shadow:4px 4px 0 var(--bg-gray)}ul.lectura-Pendiente .pendiente__title{display:inline;font-size:16px;line-height:24px;font-weight:700;border-bottom:1px solid transparent;transition:border-bottom .26s ease-in-out}ul.lectura-Pendiente .pendiente__date{display:block;color:var(--color-gray);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.5px;margin-top:8px}ul.lectura-Pendiente .pendiente__controles button.c-btn--pendiente{background:0 0;color:var(--color-text);position:relative}ul.lectura-Pendiente .pendiente__controles button.c-btn--pendiente .pendiente__borrar{display:block;visibility:visible}ul.lectura-Pendiente .pendiente__controles button.c-btn--pendiente .pendiente__vaciar{display:none;visibility:hidden}ul.lectura-Pendiente .pendiente__controles button.c-btn--pendiente .tooltiptext{visibility:hidden;width:120px;background-color:#000;color:#fff;text-align:center;padding:5px 0;border-radius:6px;position:absolute;z-index:1;top:50%;transform:translate(10px,-50%);right:100%}ul.lectura-Pendiente .pendiente__controles button.c-btn--pendiente .tooltiptext::after{content:"";display:block;vertical-align:middle;width:10px;right:-2px;top:50%;background-color:#000;height:5px;position:absolute;width:5px;transform:rotate(45deg) translate(0,-50%)}ul.lectura-Pendiente .pendiente__controles button.c-btn--pendiente:hover{-webkit-animation:temblar .5s;animation:temblar .5s;transition:1.2s;color:var(--c-dot-2)}ul.lectura-Pendiente .pendiente__controles button.c-btn--pendiente:hover .pendiente__borrar{display:none;visibility:hidden}ul.lectura-Pendiente .pendiente__controles button.c-btn--pendiente:hover .pendiente__vaciar{display:block;visibility:visible}ul.lectura-Pendiente .pendiente__controles button.c-btn--pendiente:hover .tooltiptext{visibility:visible}@-webkit-keyframes temblar{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px,0) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}100%{transform:translate(1px,-2px) rotate(-1deg)}}@keyframes temblar{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px,0) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}100%{transform:translate(1px,-2px) rotate(-1deg)}}.control-voz .kg-audio-card{display:flex;width:100%;min-height:96px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(124,139,154,.25)}.control-voz .kg-audio-card+.kg-audio-card{margin-top:1em}.control-voz .kg-audio-thumbnail{display:flex;justify-content:center;align-items:center;width:80px;min-width:80px;margin:8px;background:0 0;-o-object-fit:cover;object-fit:cover;aspect-ratio:1/1;border-radius:2px}.control-voz .kg-audio-thumbnail.placeholder{background:var(--ghost-accent-color)}.control-voz .kg-audio-thumbnail.placeholder svg{width:24px;height:24px;fill:#fff}.control-voz .kg-audio-player-container{position:relative;display:flex;flex-direction:column;justify-content:space-between;width:100%;--seek-before-width:0%;--volume-before-width:100%;--buffered-width:0%}.control-voz .kg-audio-title{width:100%;margin:8px 0 0 0;padding:8px 12px;border:none;font-family:inherit;font-size:1.15em;font-weight:700;line-height:1.15em;background:0 0}.control-voz .kg-audio-range{display:flex;flex-grow:1;align-items:center;padding:8px 12px;margin:.5em 0}.control-voz .kg-audio-player{display:flex;flex-grow:1;align-items:center;padding:8px 12px}.control-voz .kg-audio-current-time{min-width:38px;padding:0 4px;font-family:inherit;font-size:.85em;font-weight:500;line-height:1.4em;white-space:nowrap}.control-voz .kg-audio-time{width:56px;color:#ababab;font-family:inherit;font-size:.85em;font-weight:500;line-height:1.4em;white-space:nowrap}.control-voz .kg-audio-duration{padding:0 4px}.control-voz .kg-audio-pause-icon,.control-voz .kg-audio-play-icon{position:relative;bottom:1px;padding:0 4px 0 0;font-size:0;background:0 0}.control-voz .kg-audio-hide{display:none!important}.control-voz .kg-audio-pause-icon svg,.control-voz .kg-audio-play-icon svg{width:14px;height:14px;fill:var(--color-text)}.control-voz .tiempo-lector{flex-grow:1;margin:0 4px}.control-voz .kg-audio-playback-rate{color:var(--color-text);min-width:37px;padding:0 4px;font-family:inherit;font-size:.85em;font-weight:600;line-height:1.4em;text-align:left;background:0 0;white-space:nowrap;flex-grow:1;justify-content:flex-end}@media (max-width:640px){.control-voz .kg-audio-playback-rate{padding-left:8px}}.control-voz .kg-audio-mute-icon,.control-voz .kg-audio-unmute-icon{position:relative;bottom:-1px;padding:0 4px;font-size:0;background:0 0}@media (max-width:640px){.control-voz .kg-audio-mute-icon,.control-voz .kg-audio-unmute-icon{margin-left:auto}}.control-voz .kg-audio-mute-icon svg,.control-voz .kg-audio-unmute-icon svg{width:16px;height:16px;fill:var(--color-text)}@media (max-width:400px){.control-voz .kg-audio-volume-slider{display:none}}.control-voz .kg-audio-volume-slider{width:80px}.control-voz .tiempo-lector::before{content:"";position:absolute;left:0;width:var(--seek-before-width)!important;height:4px;cursor:pointer;background-color:var(--color-text);border-radius:2px}.control-voz .kg-audio-volume-slider::before{content:"";position:absolute;left:0;width:var(--volume-before-width)!important;height:4px;cursor:pointer;background-color:var(--color-text);border-radius:2px}.control-voz .kg-audio-player-container input[type=range]{position:relative;-webkit-appearance:none;background:0 0}.control-voz .kg-audio-player-container input[type=range]:focus{outline:0}.control-voz .kg-audio-player-container input[type=range]::-webkit-slider-thumb{-webkit-appearance:none}.control-voz .kg-audio-player-container input[type=range]::-ms-track{cursor:pointer;border-color:transparent;color:transparent;background:0 0}.control-voz .kg-audio-player-container button{display:flex;align-items:center;border:0;cursor:pointer}.control-voz .kg-audio-player-container input[type=range]{height:auto;padding:0;border:0}.control-voz .kg-audio-player-container input[type=range]::-webkit-slider-runnable-track{width:100%;height:4px;cursor:pointer;background:rgba(124,139,154,.25);border-radius:2px}.control-voz .kg-audio-player-container input[type=range]::-webkit-slider-thumb{position:relative;box-sizing:content-box;width:13px;height:13px;margin:-5px 0 0 0;border:0;cursor:pointer;background:#fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.24)}.control-voz .kg-audio-player-container input[type=range]:active::-webkit-slider-thumb{transform:scale(1.2)}.control-voz .kg-audio-player-container input[type=range]::-moz-range-track{width:100%;height:4px;cursor:pointer;background:rgba(124,139,154,.25);border-radius:2px}.control-voz .kg-audio-player-container input[type=range]::-moz-range-progress{background:var(--color-text);border-radius:2px}.control-voz .kg-audio-player-container input[type=range]::-moz-range-thumb{box-sizing:content-box;width:13px;height:13px;border:0;cursor:pointer;background:#fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.24)}.control-voz .kg-audio-player-container input[type=range]:active::-moz-range-thumb{transform:scale(1.2)}.control-voz .kg-audio-player-container input[type=range]::-ms-track{width:100%;height:3px;border:solid transparent;color:transparent;cursor:pointer;background:0 0}.control-voz .kg-audio-player-container input[type=range]::-ms-fill-lower{background:#fff}.control-voz .kg-audio-player-container input[type=range]::-ms-fill-upper{background:var(--color-text)}.control-voz .kg-audio-player-container input[type=range]::-ms-thumb{box-sizing:content-box;width:13px;height:13px;border:0;cursor:pointer;background:#fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.24)}.control-voz .kg-audio-player-container input[type=range]:active::-ms-thumb{transform:scale(1.2)}
Estoy escuchandote, dime que quieres buscar
En el artículo de hoy hablaremos de las pruebas web, crearemos un ejemplo real con Cypress y veremos sus ventajas e inconvenientes.
¿Tienes un sitio web y nociones de programación? Esto mejorará la experiencia de tus visitantes, así que también repercutirá en mejorar tu SEO .
😙
Si tus visitantes se sienten cómodos en tu web, pasarán más tiempo en ella y los navegadores lo interpretarán como una buena señal, así que mejorarán tu posición respecto a la competencia.
Introducción Si programas o desarrollas código web, es habitual encontrar o generar errores.
Añades uno o varios elementos al sitio y que de repente (sobre todo cuando el proyecto va creciendo o si el código lo trabajan varias personas) todo falla. Esto provoca que puedas pasar horas y horas buscando un fallo tonto o que algo importante deje de funcionar.
Una parte muy importante del proceso de creación y edición web antes de la salida a producción, es la fase de pruebas. Antes de poner un proyecto en marcha o aplicar un cambio en el sitio real, debemos asegurarnos que todo funciona como debería.
La fase de pruebas Cuando programamos existen varias técnicas para realizar pruebas de nuestro sitio web, la forma más "básica" consiste en hacer debugging añadiendo un console.log
tras cada función para que nos vaya indicando si todo va bien, luego borramos ese código cuando publiquemos el sitio y lo probamos todo sobre la marcha.
Además de que no es lo más limpio, es más lento a largo plazo y no es nada profesional utilizar ese método.
❓
Para los que no son programadores explicaré que la console.log son mensajes que enviamos al navegador, de tal forma que si pones después de un código "console.log('hola')"es que cuando el navegador lea el código y llegue a ese hola lo muestra en pantalla, así que funcione o no tu código si ves el hola sabes que has llegado hasta ahí y si no lo ves sabes que el navegador ha fallado antes de llegar hasta ahí.
Desventajas de console.log vs test e2e Aunque todo desarrollador tanto de frontend como backend lo ha utilizado y lo utiliza alguna vez... usar console.log para probar código no debería ser lo normal porque aunque pueda parecer rápido es preferible perder 5 minutos y programar unos test que nos podrían ahorrar horas y frustraciones.
💡
Si alguien le interesa que me lo pida en comentarios y un poco más abajo dejaré un extra sobre el comando console.log pero en nivel hacker 😁👍
Test vs "a pelo" ¿Has oído alguna vez la expresión "Reinventar la rueda"? Si no usas test te enfrentas a esto. Pero para situarte, te voy a poner un caso real:
Tengo un sitio web con un formulario de contacto, hago todo el código y cuando lo tengo ya preparado, abro mi navegador web, entro al sitio y lo pruebo. ¡Vaya! Todo parece ir bien a la primera, soy un genio.
Pero como más vale prevenir que curar... vuelvo a abrir la web, relleno el formulario y lo envío otra vez por si acaso. ¡Madre mía! ¡¿Que pasa?! Pero si antes funcionaba y ahora le doy a enviar y no hace nada.
20 minutos y unos cuantos pelos arrancados más tarde.....
- Calma, calma, no he puesto el email en el formulario y como falta un campo no se envía, voy a preparar un mensaje de error para el usuario y si no pone email le saltará un aviso para que lo rellene.
Tras crear el código vuelvo a la web y lo pruebo. ¡Ahora sí! Cuando el usuario no pone el email le muestra un aviso y no le deja seguir. Ostras.. Pero tengo que probar que pasa si está todo bien y si una vez aparece el error puedo rellenar lo que me falta y seguir con el envío.
No quiero alargarme mucho más porque con esto creo que ya hemos ilustrado bien lo que pasa. Para algo tan sencillo como probar un formulario, he tenido que cargar el sitio varias veces, la primera vez perdí 20 minutos hasta darme cuenta de que el fallo era tan sencillo como que el usuario no rellenase el campo, después, y si no queremos sorpresas en el sitio final, probar los diferentes errores 1 a 1 tanto si fallan como si no...
Tipos de pruebas automatizadas Para hacer nuestras comprobaciones como profesionales existen una serie de herramientas automatizadas que ponen a prueba nuestro sitio web y nos permiten asegurarnos de que todo funciona como debe con un mínimo esfuerzo.
Test e2e : Son pruebas funcionales de toda una aplicación o sitio web en conjunto. Replican el comportamiento de los usuarios y tienen como propósito validar que todo funcione bien y como se espera.Test unitarios : Prueban de forma individual las funciones y/o métodos que usa nuestra aplicación o sitio web.Test de integración : Las pruebas de integración verifican que los diferentes módulos y/o servicios usados por nuestra aplicación funcionen en armonía cuando trabajan en conjunto.En el artículo de hoy nos centraremos en las pruebas de tipo e2e (end to end) .
Como funcionan las pruebas e2e Estas pruebas se realizan creando un itinerario como si fuese el propio usuario que navega por nuestro sitio y nos permiten probar todos los aspectos de nuestro sitio web.
Caso: Quiero probar si la casilla que tengo para buscar artículos de mi web funciona.
Funcionamiento: Mi test se encargará de entrar al sitio web como si fuese un visitante más, hará clic en el formulario de búsqueda, introducirá su búsqueda y comprobará que aparezcan los resultados, pero no solo eso, después clicará en uno de los resultados y comprobará que realmente se puede acceder al artículo.
Resultado: Así habremos probado que podemos buscar, que aparecen los resultados y que podemos entrar a ellos.
Ventajas de las pruebas e2e Facilita la detección de errores o mal funcionamientos que pueden afectar a la integración de los componentes. Simplifica las pruebas web en varias resoluciones y/o dispositivos Prueba tu web y sus funciones como un visitante Desventajas de las pruebas e2e Son pruebas lentas, sobre todo cuando la aplicación crece (la ejecución de los test se puede eternizar) . Pueden ser complejas ya que tenemos que tener un entorno en funcionamiento para ejecutarlas porque necesitamos que nuestra aplicación/web, sus bases de datos y todo lo que utiliza esté funcionando para las pruebas. Son pruebas caras, ya que requieren de bastantes recursos para crear un entorno de servidor de pruebas, etc... Que herramienta de pruebas e2e elegir Cuando pruebas el frontend de tu web o aplicación necesitas una herramienta capaz de comportarse tal y como lo haría uno de tus visitantes y en este apartado es indiscutible que Cypress ha marcado un antes y un después.
Cypress es una herramienta de testing rápido, fácil y fiable capaz de hacer cualquier cosa que funcione en un navegador.
Muchas empresas como PayPal, Walt Disney Studios o DHL ya lo utilizan y lo que es más importante, se trata de un proyecto de código abierto.
Es más rápido , ya que se ejecuta en memoria y no requiere de toda la preparación que tienen los navegadores gráficos. Se pueden hacer capturas de pantalla o vídeos durante las pruebas. No es necesario tener un navegador instalado. Detecta cambios en el código. Incluye Mocha, Chai y Sinon.js Documentación muy amplia incluso con ejemplos en el momento de instalarlo. Curva de aprendizaje muy baja hasta aprender a implementarlo. Las pruebas se pueden dividir en categorías y subcategorías. Código open source y comunidad activa que permite resolver dudas de forma rápida cuando nos estancamos. Mi primer test con cypress Si has leído todo lo anterior ya estás puesto en situación y sabes que lo necesitas, pero sí no, no pasa nada, no te juzgo. Aprenderás igual y te vendrá bien de todas formas.
Primero de todo instalaremos cypress, así que...
Instalando robot... ¿Qué necesito para instalar Cypress? Puesto que Cypress es una aplicación de escritorio que se instala en tu equipo, necesitarás:
Sistemas operativos:
macOS 10.9 o superiorLinux : Ubuntu 12.04 y superiores, Fedora 21 y Debian 8Windows 7 o superioresNode.js 12 o 14 o superiores
En cuanto a hardware ya que las pruebas se realizan sobre el equipo que las ejecuta, hacen falta al menos 2 CPUs para ejecutar Cypress + 1 CPU adicional si se quiere grabar vídeo + 1 CPU addicional por cada proceso que se ejecute fuera de Cypress (Frontend, backend, base de datos, kafka, ...), en cristiano... un procesador de al menos 4 núcleos. Vamos un PC de no más de 10 años... en cuanto a memoria necesitaremos un mínimo de 4GB y 8GB si se trata de pruebas más largas.
Además de esto si ejecutas Ubuntu o Debian necesitarás instalar estas dependencias:
apt-get install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb
Y si usas CentOS necesitarás estas otras:
yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel GConf2 nss libXScrnSaver alsa-lib
Instalando Cypress Ahora que tenemos claro que nos hace falta, vamos a empezar a instalarlo, para ello tendremos que ir a la raíz de nuestro sitio web y ejecutamos lo siguiente:
npm install cypress --save-dev
Si no usas npm puedes hacerlo también con yarn
yarn add cypress --dev
Y si no sabes de que te hablo te recomiendo que te pases por mi otro artículo:
Tu primera aplicación web con Node.js || Omniscientia
Guía 100% en español sobre como crear tu primera aplicación con Node.js
💡
Usamos --dev al final del comando o --save-dev si es npm para guardar en nuestro archivo package.json que usamos cypress en nuestro desarrollo y si borramos todos los archivos necesitaremos volverlo a instalar porque nuestros test lo necesitan.
¡Genial! Ahora ya deberías tener Cypress instalado en tu proyecto.
Abriendo Cypress por primera vez Estás nervioso y entusiasmado, lo sé. Pronto todos tus proyectos tendrán controles de calidad y ahorrarás mucho tiempo.
Lo primero para utilizar cypress es encender Cypress, así que vamos a ello. Aunque existen varias formas, la que a mí más me gusta es abrir mi archivo package.json y añadirle estas sencillas líneas:
{
"scripts": {
"cypress:open": "cypress open"
}
}
de esta forma nuestro proyecto sabe que cypress:open ejecuta cypress, así que una vez añadido esto en nuestro package.json solo faltará ejecutarlo:
npm run cypress:open
Ahora Cypress se abrirá y deberías ver algo similar a esto:
Elegiremos E2E ya que es de lo que trata el artículo pero Cypress está incorporando (aún en versión de pruebas) la prueba de componentes aislados.
Al ser la primera vez que ejecutamos Cypress nos configurará las pruebas iniciales de demostración y creará el archivo de configuración de la herramienta.
En la siguiente pantalla ya sólo nos faltará elegir nuestro navegador favorito para nuestras pruebas y podremos empezar.
Cuando le des a Start E2E testing por primera vez te da la opción de empezar con todo vacío o añadir test de muestra. Te recomiendo que crees los test de muestra ya que siempre estarás a tiempo de borrarlos, pero pueden ser una ayuda al principio.
El primer test (CASO REAL) Primero de todo vamos a crear nuestro archivo de test, estará situado en la carpeta cypress\e2e y su nombre será loquequieras.cy.js es importante que esté terminado en .cy.js ya que cypress reconocerá todos los archivos con esta terminación como test.
El primer test - Prueba de artículo (CASO REAL) Caso: Comprobaremos esta misma web localizando el primer artículo visible en la página de portada y accederemos a el. Una vez dentro verificaremos que se trata realmente de un artículo, comprobaremos que tiene contenido y para acabar de asegurarnos de que todo carga, comprobaremos el bloque de comentarios.
Dificultades: En esta prueba concreta nos encontraremos que cuando accedemos a la web los elementos no son visibles porque nos aparece una ventana emergente solicitando el permiso para utilizar las cookies. El otro problema al que nos enfrentaremos es que esta web en su pie de página conecta con una API para obtener las imágenes de nuestro Instagram, pero puesto que la prueba la haremos localmente, la URL no coincidirá con omniscientia.es y la API no querrá entregarnos los datos por lo que recibiremos un error desde el principio.
Procedimiento: Primero de todo crearemos un archivo llamado general.cy.js en nuestra carpeta cypress/e2e con las pruebas a realizar, después interceptaremos las peticiones hacia la API y crearemos el archivo con los datos de la API
Tal y como hemos dicho, creamos nuestro archivo general.cy.js y empezaremos de la siguiente forma:
cypress/e2e/general.cy.js context servirá para que cypress nos muestre el nombre de la prueba
beforeEach se ejecutará antes que cualquier test así que lo aprovechamos para interceptar todas las peticiones de tipo GET hacia lo que sea pero acabado en /instagram y cambiamos su respuesta por el contenido de nuestro archivo instagram.json, además de esto visitaremos la ruta raíz (localhost:5555 que es donde está el sitio de pruebas de nuestra web)
Es momento de crear nuestro instagram.json con los datos de muestra. Lo haremos dentro de la carpeta cypress/fixtures, lo único que haremos será poner los datos tal y como nos los devuelve la API, en nuestro caso es así:
cypress/fixtures/instagram.json Ahora que nuestro test cambia los datos reales de la API Instagram por los falsos en la carpeta fixtures de Cypress, ya podemos empezar con las pruebas:
En la imagen de arriba está la prueba escrita por completo, ¿como funciona? Lo vemos.
1- Cuando ejecutemos Cypress tendremos "Prueba general del sitio web" porque así lo hemos indicado en context.
2- Iniciaremos el test "Prueba de navegación hasta el artículo" porque lo hemos llamado así con describe
3- Cuando el test se vaya a iniciar, antes de nada Cypress cambiará las llamadas a la API real de instagram por unos datos falsos que hemos creado previamente y luego accederá en nuestra web.
4- Una vez en nuestra web se nos abrirá una ventana para pedirnos consentimiento de las famosas cookies. Gracias a que hemos indicado un beforeEach (antes de las pruebas), buscaremos el cuadro de cookies con id #cookies y haremos clic en el botón de aceptar.
5- El cuadro de cookies se ha cerrado así que ahora le pediremos a Cypress que busque un artículo y se posicione en su título, cuando lo haga le hemos indicado que haga clic.
6- Ahora y puesto que si nada a fallado deberíamos haber entrado en el artículo lanzamos el mensaje de "Puedo acceder a un artículo" y lo verificamos capturando el sitio web y comprobando que la página contenga la clase post-template (nuestra web inyecta esta class en el body html de todos los artículos)
7- Ahora que sabemos que estamos realmente en un artículo cogeremos el class .c-content y entraremos dentro del primer párrafo para pedirle a Cypress que nos confirme que realmente existe un párrafo de texto (el .c-content es el nombre que le damos nosotros en html al contenido de nuestros artículos, esto cambia de una web a otra por lo que debes cambiarlo por la class que tenga tu web)
cy.get('.c-content p').should('exist')
8- Ya por último sabemos que podemos entrar en la web, aceptar las cookies, navegar hasta un artículo, el artículo carga el contenido así que seleccionamos un bloque del pié de página como lo es el apartado de comentarios y verificamos que existe.
it('El submódulo de comentarios funciona' ()=> {
cy.get('.article-comments').should('exist')
})
En realidad podemos iniciar sesión, probar a escribir un comentario, borrarlo y profundizar mucho más, al igual que podemos en el artículo llamar a la base de datos y no solo comprobar que hay un texto si no verificar que el texto que se muestra es realmente el del artículo. Pero como introducción a Cypress y por ahora pienso que si llegas hasta aquí vas a tener una buena noción y no está nada mal.
¡Nos vemos en el siguiente artículo!
Esta publicación es solo para suscriptores Suscríbete ahora Omniscientia usa cookiesLas cookies hacen que nuestro sitio funcione de manera adecuada y segura. Al permitirnos utilizarlas, obtendrás la mejor experiencia de usuario con contenido enriquecido de marca y productos y servicios relevantes.
Gracias a los datos que las cookies nos proporcionan podemos mejorar las interacciones de la web para ofrecer una mejor experiencia de navegación.
Aceptar cookies Solo esenciales
Privacidad Aviso importante El siguiente artículo contiene imágenes estroboscópicas y/o patrones de luces intermitentes que podrían afectar a las personas fotosensibles.
Si usted tiene epilepsia o problemas fotosensibles o presenta alguno de los siguientes síntomas: mareos, visión alterada, tics, sacudidas o movimientos bruscos de los brazos o las piernas, desorientación, confusión o pérdida momentánea de la consciencia. Puede activar nuestra protección contra la fotosensibilidad y navegar con tonos grises.
Por el contrario, si usted no presenta ninguno de los problemas antes mencionados, puede navegar con normalidad, omita este aviso y perdone las molestias.
Protección fotosensible Anular aviso