');--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
Bienvenido a un nuevo tutorial de aplicaciones web avanzadas 👏
Hoy quiero hablarte de Docker. Créeme que si no lo conoces y te dedicas a programar profesionalmente o tienes intención de hacerlo, te puede “salvar la vida” y evitarte situaciones muy incomodas 😅
¿Qué es Docker? Esta es la primera pregunta que te debes estar haciendo y para que lo veas claro quiero ponerte un caso real (Si eres programador seguro que ya lo has vivido y si quieres serlo siento decirte que tarde o temprano te pasará, pero ¡tranquil@! Nos ha pasado a todos 😌).
Estás desarrollando una aplicación y tras mucho trabajo, test, depuraciones, etc. ha llegado el día de compartirla con tu jefe/a, compañero/a o el propio cliente, incluso te puede pasar subiéndola a tu propio servidor (no se libra nadie 🤣) . Tu preciosa y nueva aplicación funciona a las mil maravillas 🚀 y su interfaz abre una nueva era de la digitalización 🤩 (¡es posible que sea algo muy ingenioso que incluso cambie la manera como vemos el mundo! Un nuevo color para la calculadora de Windows por ejemplo 😎) , como iba diciendo, te la llevas en un pendrive o la subes a un repositorio 🎁 (otro día te hablaré de los repositorios y lo necesarios que son) y justo cuando estás en la presentación la ejecutas con tu código genial de inicio 🐱💻 y … ERROR …. Empiezas a mirar y revisar todo, revisas el fallo que te ha dado (te sientes medio imbécil) , te pones nervioso y te entran los sudores (aquí ya te vuelves imbécil del todo y aunque la propia aplicación te llamase por teléfono para decir que falla, no serías capaz de verlo) , no entiendes nada… de hecho la acabas de probar en tu portátil y FUNCIONABA …. y es posible que lo único que te sale decir en ese momento es… lo siento 😯, no sé qué ha pasado, en mi ordenador funcionaba…. Y tú jefe que es de respuesta rápida te dice…. ¿Y qué hacemos? ¿Le damos tu ordenador al cliente? ¿Qué nos acaba de ocurrir? Muy posiblemente nuestra fantástica aplicación requiere de una librería del propio sistema operativo o un software que ya estaba en nuestro equipo, pero al pasarla al servidor o equipo nuevo, este no tenía ese software/librería o es otro sistema operativo y no es compatible con una parte de nuestra aplicación si no instalamos algo antes....
¿Cómo podemos solucionar esto? Y créeme, si no te ha pasado, TE PASARÁ .
Pues para eso precisamente existe Docker 🦸♂️📦
Docker es un sistema operativo de contenedores , encargado de acelerar la forma en la que creamos aplicaciones , permitiéndonos compartir y ejecutar aplicaciones modernas en diferentes sistemas operativos sin tener que pasar por problemas de compatibilidad y facilitándonos y estandarizando la puesta en marcha y mantenimiento de estas.
¿Cómo funciona? Básicamente creamos nuestra aplicación y la metemos dentro de una caja junto a todo lo necesario para que funcione.
¿Tu aplicación funciona gracias a Linux? Bien, Linux estará en esa caja, pero… ¿necesitas todo de Linux? ¿No? Genial, quito el escritorio por aquí… todas las opciones de arranque, las aplicaciones, el reconocimiento facial, la IA skynet, dejo esto y aquello... ¿Qué? ¿Qué también necesitas este software que no viene con Linux? Lo ponemos también, no hay problema.
Docker, nos permite elegir la base de nuestra aplicación y sobre esta base podemos ir añadiendo todo lo que nos hará falta, después de esto, podremos añadir nuestra propia aplicación y no solo eso si no que dejaremos configurada una rutina de inicio por la que debe pasar nuestra aplicación (todos los comandos para que arranque sin problema).
De esta forma da igual el sistema operativo en el que estemos (Windows, Linux, MacOS, …) o, aunque se trate del mismo sistema operativo, pero sin ciertas aplicaciones o drivers/librerías instaladas, nuestra aplicación funcionará siempre que tengamos Docker instalado en nuestro sistema porque nuestro archivo Docker (imagen) ya contendrá todo lo necesario para ponerse en funcionamiento, incluso los archivos de otro sistema operativo.
¿Qué lo hace tan especial? Bueno realmente si piensas en ejecutar una aplicación en varias plataformas o sistemas operativos, tienes la opción de adaptarla para que sea multiplataforma o lo primero que te viene a la mente es crear una máquina virtual con lo justo para que arranque el sistema operativo (para esto también se creó valgrant , otro día te hablaré de él) .
Si no las conoces, las maquinas virtual son unos espacios que se crean dentro de un sistema operativo y consumen/comparten tu disco duro, memoria RAM y procesador (recursos en general) para ejecutar un sistema operativo dentro de otro. El problema de esto es que ejecutar por ejemplo todo Windows 10 dentro de nuestra maquina con Ubuntu (Linux) porque nos hacen falta 3 archivos de Windows y un programita para que funcione… es un poco EXAGERADO , sin tener en cuenta la cantidad de recursos innecesarios que se pierden.
Hasta ahora te he hablado de lo genial que es hacer funcionar tu aplicación en cualquier sitio, pero no siempre es suficiente con que arranque, hay que ejecutar comandos al iniciarla y volverlos a ejecutar si falla… por suerte Docker también nos resuelve esto.
Cada contenedor Docker contiene nuestra aplicación, (si la configuramos bien) lo justo y necesario para que esa aplicación funcione (incluso otro sistema operativo) pero además tiene todas las configuraciones y comandos para que encienda y funcione o realice la tarea que le programemos.
Cuando iniciamos por primera vez nuestro contenedor o IMAGEN , esos comandos se ejecutan y se ponen a trabajar, pero si ocurre o un fallo o simplemente paramos nuestro contenedor, cuando volvamos a iniciarlo volverá a ponerse en marcha y aquí tengo que darte el primer susto….
¡Nuestro contenedor no almacena datos 😲🤯! Estarás pensando… vaya m#@@!#€ ¡Esto significa que si mi aplicación se apaga! ¡lo pierdo todo!
Nada más lejos de la realidad, por ahora no quiero liarte demasiado, ya que iremos ampliando en próximos artículos pero recuerda que tu información se almacena en bases de datos y Docker también nos da la posibilidad de realizar funciones como por ejemplo lectura y escritura en una carpeta externa, de esta forma si por ejemplo tu aplicación es un sitio web que tiene sistema de usuarios y les dejas subir su foto de perfil, esas fotografías se almacenan en esa carpeta externa y si el contenedor se apaga y enciende todas las fotografías estarán a salvo.
Caso práctico Siempre se dice que una imagen vale más que mil palabras y por eso mismo te voy a explicar cómo iniciarte en Docker y crear tu primer contenedor.
Supongamos que tenemos una aplicación de Node.js (que es en lo que centraré mis artículos) , lo primero que necesitaremos será crear un dockerfile (este archivo contendrá todas las instrucciones para crear nuestra imagen (el archivo que lo contendrá todo)) .
Nuestro fichero .dockerfile sería algo así….
FROM node: 16.8.0-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . ./
EXPOSE 4221
CMD npm run start
Archivo de ejemplo .dockerfile Si revisamos el archivo de arriba (el docker file) , en la línea 1 le indicamos con FROM que imagen o base utilizaremos. Como yo no necesito todo el sistema operativo y mi base es Node.js que funciona en todos, uso Node.js de base y me ahorro el resto, además utilizo la versión alpine que es la que viene con lo justo y necesario y ocupa menos. Puedes comprobar las imágenes de Node.js en el siguiente enlace: https://hub.docker.com/_/node
Lo siguiente que hago es crear el directorio que contiene la aplicación dentro de la imagen. En este caso la carpeta app
Después paso a copiar el archivo package.json y package.lock.json (por eso el *)
Más tarde ejecuto npm install (esto, si ya has usado Node.js o has leído mi anterior tutorial, sabrás que es para coger todas las dependencias y librerías que figuran en el package.json de la nueva imagen e instalarlas dentro)
Ahora lo que hago es coger todo lo que hay en el directorio actual (el de la aplicación en mi PC, por eso el . que significa la raíz) y lo copio a la raíz del WORKDIR de la imagen (./) o lo que es lo mismo, a la carpeta /app de nuestra nueva imagen Docker.
Con EXPOSE lo que hago es exponer el puerto por el que funciona mi aplicación (es decir que abro una puerta del contenedor para que mi aplicación Node.js se comunique con el mundo) (si tu aplicación usa otro puerto simplemente modifica el número del .dockerfile para que sea el que usa tu aplicación) .
Por último, con CMD ejecuto el comando que realmente enciende la aplicación.
Ahora que ya tenemos nuestro .dockerfile acabado, podemos crear nuestra imagen de Docker con este comando:
Docker build -t mi-aplicación-node
Comando para compilar tu aplicación en un único archivo o "Imagen" La -t indica que el texto siguiente es una etiqueta, de esta forma cuando ejecutemos Docker images
para ver que imágenes Docker tenemos, veremos nuestra aplicación con el nombre mi-aplicación-node
Y ahora sí, ha llegado el gran momento, ya hemos convertido nuestra aplicación en un archivo con el comando anterior y vamos a ponerla a funcionar.
Ejecutamos: Docker run -p 4221:4221 -d mi-aplicación-node
Y si entras en http://localhost:4221 podrás ver cómo funciona.
Para probar, haz una sencilla aplicación web de Hola mundo , te dejo un enlace al tutorial donde explico cómo crearla: Tu primera aplicación web con Node.js . ¿No te resulta increíble 😁? Prueba a copiar tu imagen de Docker y llevarla a otro PC, no instales ni siquiera Node.js en ese otro PC e inicia la imagen Docker, verás como sin tener ni siquiera Node.js tu aplicación enciende y funciona perfectamente. Ahora imagina un servidor y todo lo que podrías hacer sin tener que instalarle porquerías y que cada aplicación tenga solo lo que necesita y qué si necesitas apagar y encender algo no tengas que configurar nada, solamente apagar y encender la imagen cuando vuelvas a estar listo y como si nada.
Resumen de ventajas Docker nos permite mover toda nuestra aplicación en un solo archivo.
Ese archivo se puede ejecutar en cualquier equipo o servidor, sistema cloud, ...
Nuestra aplicación siempre estará lista para funcionar con decírselo, sin necesitar que nadie ejecute comandos, simplemente le indicaremos que se encienda y lo hará.
Si sufrimos un fallo en nuestra máquina, podremos poner nuestra aplicación en otro sitio y funcionará como si nada.
Nuestra aplicación y todo lo que necesita se encontrará dentro de un espacio aislado que dificulta el acceso o la mala configuración del anfitrión (servidor, equipo, …) , además nos evita tener que instalar nada, si necesitamos una base de datos local, nuestro contenedor ya la tendrá, no hace falta que la instalemos en el servidor y la configuremos.
*Bonus Cuando creamos el .dockerfile y después generamos la imagen con docker build
es posible que se copien archivos que no nos interesa copiar, para evitar esto, en el directorio principal de nuestra aplicación (donde hemos creado el archivo .dockerfile) creamos un archivo llamado .dockerignore y dentro le indicamos que archivos o directorios queremos excluir. Por ejemplo:
.git
*dockerfile*
Node_modules
Archivo .dockerignore Aquí acabamos de excluir de nuestra imagen Docker, los propios archivos para configurar la imagen Docker (no los necesitamos dentro) , los archivos de GitHub (tu imagen se usará en producción, ¡no los necesitas!) y la carpeta node_modules (la carpeta node modules contiene los módulos npm pero recuerda que nuestra imagen Docker tiene un comando para descargar e instalar los módulos “npm install” así que no te hace falta copiarlos) .
En próximos artículos mejoraremos un poco más nuestro contenedor y agregaremos algunos trucos muy útiles, además te contaré otras muchas ventajas y hablaremos también de sus inconvenientes y desventajas (también las tiene)
¿Qué te ha parecido el artículo? ¿Tienes dudas? ¿Te gustaría que explique algo más a fondo? Déjame un comentario abajo y te contesto 😉
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