.h-hero__title h1,.p-hero h1{letter-spacing:-.04em;line-height:.9}button,hr,input{overflow:visible}progress,sub,sup{vertical-align:baseline}details,main{display:block}*,::after,::before,legend{padding:0;box-sizing:border-box}body,html,sub,sup{position:relative}.c-image-wrapper,.dropdown__body,body,html,main{overflow:hidden}#viewport,textarea{overflow:auto}#viewport,.button__icon svg,.text-hidden{backface-visibility:hidden}.button__icon svg,.button__icon__bg{transition:transform .2s cubic-bezier(.5,.7,.4,1)}.button__icon,.text-link::before{content:""}.h-hero__title h1{font-size:15em}.p-hero h1{font-size:8.068em}.cta h3,.p-next__link,.project .project__title{font-size:5.37em;line-height:1;letter-spacing:-.03em}.legal h1,.p-hero__year,.p-info h2,.process__title h2,.project .project__year,.services__header h2,.services__item span{font-size:3.58em;line-height:1.1;letter-spacing:-.02em}.p-web h2,.projects__footer h3,.projects__header h3{font-size:2.39em;line-height:1;letter-spacing:-.01em}.dropdown__header p,.dropdown__header span,.legal h3,.process__list .dropdown__header h3,.process__list .dropdown__header span,.services__item h2{font-size:1.59em;line-height:1;letter-spacing:0}.u-body-large{font-size:1.3em;line-height:1.5;letter-spacing:0}.button span,.c-testimonial__author--name,.h-hero span,.p-info__list li p,.p-info__list li span,.p-next span,.projects__header span,header .nav a,header .nav span,p{font-size:0.8em;line-height:1.5;letter-spacing:0}.c-testimonial__author--position,.footer a,.footer span,.footer__back,.footer__legal a,.h-hero__social li span,.nav__theme__text,.p-web span{font-size:.875em;line-height:1.5;letter-spacing:0}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */hr{box-sizing:content-box;height:0}abbr[title]{border-bottom:none;text-decoration:underline dotted}button,input{}button,select{text-transform:none}legend{color:inherit;display:table;max-width:100%;white-space:normal}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;text-decoration:none}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}body,h1,h2,h3,h4,h5,h6,html{font-family:"PP Mori",sans-serif}summary{display:list-item}[hidden],template{display:none}ul{list-style:none}*,::after,::before{margin:0}body,html{font-size:1.1111111111111112vw;color:#111414;background-color:#efefef;letter-spacing:0}@media screen and (min-width:1920px){body{font-size:21.33px}}@media screen and (max-width:991px){body{font-size:11.01px}}.wrapper{max-width:90em;padding:0 2.5em;margin:0 auto}@media screen and (min-width:1600px){.wrapper{max-width:85em}}.wrapper .inner{max-width:54.25em;margin:0 auto}#viewport{width:100%;height:100%;position:fixed;transform:translateZ(0)}body.dark-mode #viewport{color:#efefef;background-color:#111414}.text-hidden{display:block;visibility:hidden;height:0}.cursor,.progress{display:none}body.dark-mode #awwwards svg path{fill:#efefef}body.dark-mode #awwwards svg g path{fill:#111414}@font-face{font-family:"PP Mori";src:url(../fonts/PPMori-Regular.woff) format("woff"),url(../fonts/PPMori-Regular.woff2) format("woff2");font-weight:400;font-display:swap}h1,h2,h3,h4,h5,h6{font-weight:400;margin:0}@media screen and (max-width:990px){.wrapper{padding:0 20px}p{font-size:15px}}@media (any-pointer:fine){.cursor{position:fixed;top:0;left:0;display:block;pointer-events:none}.cursor__inner{fill:red;stroke:none;stroke-width:1px;opacity:.7}}.progress{position:fixed;top:50%;left:50%;font-size:3vw;visibility:hidden;width:50px;height:50px;background:red;z-index:100}.button{display:inline-flex;align-items:center;padding:.25em .25em .25em 1.25em;background-color:#111414;color:#efefef;column-gap:1em;border-radius:100px}.button__icon__bg,.dark-mode .button{background-color:#efefef}.button span{margin-top:2px}@media screen and (max-width:990px){.button{padding:8px 8px 8px 16px}.button span{font-size:15px}header .nav a,header .nav span{font-size:13px}}.button__icon{position:relative;display:flex;justify-content:center;align-items:center;width:2.5em;height:2.5em;border-radius:50%}.button__icon__bg{position:absolute;width:100%;height:100%;border-radius:50%;transform:scale(.2)}.button__icon svg{width:1.5em;height:1.5em;opacity:0;mix-blend-mode:difference}.button:hover .button__icon__bg{transform:scale(1)}.button:hover svg{opacity:1;backface-visibility:visible}.dark-mode .button__icon__bg,.text-link::before{background-color:#111414}.dark-mode .button span{color:#111414}.text-link{padding:.25em 0;position:relative}.text-link::before{display:block;position:absolute;bottom:.25em;left:0;width:100%;height:1px;z-index:2;will-change:transform,color;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transition:-webkit-transform .35s;transition:-webkit-transform .35s;transition:transform .35s;transition:transform .35s,-webkit-transform .35s;-webkit-transition-timing-function:cubic-bezier(.25,.46,.45,.94);transition-timing-function:cubic-bezier(.25,.46,.45,.94)}.c-image-wrapper__cover,.dark-mode .text-link::before{background-color:#efefef}.text-link:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transition-timing-function:ease;transition-timing-function:ease}.dropdown,.dropdown__body,.dropdown__body__content,.dropdown__icon path{transition:.4s cubic-bezier(.5,.7,.4,1)}.c-image-wrapper{position:relative;width:100%}.c-image-wrapper.cc-16-9{padding-top:56.25%}.c-image-wrapper img{position:absolute;top:0;left:0;bottom:0;right:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:10}.c-image-wrapper__cover{position:absolute;top:-20%;left:-20%;right:0;height:140%;width:140%;z-index:20;transform:rotate(-10deg)}.dropdown__divider,.services__item::before{content:"";left:0;bottom:0}.p-hero h1,.p-hero__year{transform:translateY(20px)}.with-parallax img{width:100%;height:120%;top:-20%}.p-mockup .p-mockup-full:not(:last-child){margin-bottom:20px}.p-mockup .p-mockup-full img{width:100%}.dark-mode .c-image-wrapper__cover{background-color:#111414}.dropdown{position:relative;max-width:56.25em}.dropdown__header{padding:2em 0;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.dropdown__header__content{display:flex}.dropdown__header span{margin-right:.75em}.dropdown__icon{position:relative;color:#111414;width:1em;height:1em}.dropdown__body{height:0}.dropdown__body__content{padding-bottom:2em;opacity:0}.dropdown__divider{display:block;position:absolute;width:100%;height:1px;background-color:rgba(17,20,20,.1)}.dropdown.cc-open .dropdown__body__content{opacity:1}.dropdown.cc-open .dropdown__icon path:nth-of-type(2){opacity:0}.dark-mode .dropdown__icon{color:#efefef}.dark-mode .dropdown__divider{background-color:rgba(239,239,239,.1)}header{padding:1.25em 0;z-index:999999;color:#111414}header .nav{display:grid;grid-template-columns:5fr 6fr 1fr;grid-column-gap:1.5em}@media screen and (max-width:766px){header .nav{display:flex;justify-content:space-between;align-items:flex-start}}header .nav.cc-project{grid-template-columns:8fr 3fr 1fr}header .nav a,header .nav span{color:#111414;justify-self:flex-start}@media screen and (max-width:767px){header .nav__logo{display:none}}header .nav__links{display:flex;grid-column-gap:2.5em;margin-left:-2em}@media screen and (max-width:439px){header .nav__links{flex-direction:column}}header .nav__next{opacity:.4}@media screen and (max-width:374px){header .nav__next{display:none}}.dark-mode header,.dark-mode header a,.dark-mode header span{color:#efefef}.nav__theme{display:inline-flex;cursor:pointer;margin-left:auto;align-items:center}.nav__theme__icon{width:1.25em;height:1.25em}.nav__theme__text{margin-left:.5em;margin-top:2px}@media screen and (max-width:990px){.nav__theme__text{font-size:13px}}#toggleTheme,.light-mode .nav__theme__icon .cc-moon,.nav__theme__icon .cc-moon{display:none}.dark-mode .nav__theme__icon .cc-moon,.light-mode .nav__theme__icon .cc-sun{display:block}.dark-mode .nav__theme__icon .cc-sun{display:none}.c-testimonial{padding:5em 0}.c-testimonial__text{font-size:1.67em}.c-testimonial__author{display:flex;align-items:center;margin-top:40px}.c-testimonial__author img{width:3.75em;height:3.75em}.c-testimonial__author--box{margin-left:1em}.c-testimonial__author--name{display:block}.c-testimonial__author--position{opacity:.5}.cta{padding-top:10em;padding-bottom:4em}.cta .wrapper{display:flex;justify-content:space-between;align-items:flex-end}.cta__content{position:relative;max-width:56.25em;width:100%}.cta__image,.cta__image::after{position:absolute;border-radius:50%}@media screen and (max-width:839px){.cta .wrapper{flex-direction:column;align-items:flex-start}.cta__content{margin-bottom:2em}}.cta__image{width:6em;height:6em;top:-1em}@media screen and (max-width:669px){.cta__image{width:5em;height:5em}}.cta__image img{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:50%}.cta__image::after{display:block;top:.25em;right:.25em;content:"";width:1.25em;height:1.25em;background-color:#a0c000;z-index:90;border:.125em solid #efefef}.cta h3,.h-hero,.h-hero__sub,.services__item{position:relative}.cta h3{text-indent:1.25em}@media screen and (max-width:669px){.cta h3{font-size:3.58em;text-indent:1.5em;line-height:1.1}}.dark-mode .cta__image::after{border-color:#111414}.footer #footerYear{margin-right:4px}.footer__grid{display:grid;grid-template-columns:5fr 6fr 1fr;padding:2em 0;border-top:1px solid rgba(17,20,20,.1)}@media screen and (max-width:990px){.footer__grid{grid-template-columns:1fr}.footer span,.footer__back{font-size:13px}}.h-hero__top,.projects__header{grid-template-columns:8fr 4fr;grid-column-gap:1.25em}@media screen and (max-width:566px){.footer__grid{display:flex;flex-direction:column;flex-wrap:wrap}}.footer__links{display:flex;column-gap:1.25em}@media screen and (max-width:990px){.footer__links{order:0;justify-self:flex-start;margin-bottom:10px;margin-top:10px}.footer__legal a{font-size:13px}}@media screen and (max-width:374px){.footer__links{flex-direction:column}}.footer__legal{cursor:pointer;margin-left:auto;margin-top:10px}.footer__legal a{margin-left:auto;color:#111414}@media screen and (max-width:990px){.footer__legal{order:2;margin-left:unset}.footer a{font-size:13px}}.h-hero__title h1,.p-hero h1{margin-left:-10px}.footer a{color:#111414}.dark-mode .footer__grid{border-color:rgba(239,239,239,.1)}.dark-mode .footer a{color:#efefef}.h-hero{padding-top:15em;padding-bottom:7.5em}.h-hero__top{display:grid;align-items:flex-end;margin-bottom:5em}@media screen and (max-width:990px){.h-hero__top{display:flex;align-items:flex-start;flex-direction:column}.h-hero__title h1{font-size:20vw}}.h-hero__bottom{display:grid;grid-template-columns:10fr 2fr;grid-column-gap:1.25em}.h-hero__title h1 span{line-height:.9}.h-hero__sub{top:-2.7em;max-width:14em}@media screen and (max-width:990px){.h-hero__sub{top:unset;max-width:25em;margin-top:2em;opacity:.6}}.h-hero__text{max-width:48em}.h-hero__text p{font-size:2em;line-height:1.4;margin-bottom:1em}@media screen and (max-width:819px){.h-hero__bottom{display:flex;align-items:flex-start;flex-direction:column}.h-hero__social{display:none}}.h-hero__social li{margin-bottom:.5em}.h-hero__social li:nth-of-type(1){padding-bottom:.5em;border-bottom:1px solid rgba(17,20,20,.1);margin-bottom:1em;opacity:.5}.h-hero__social li a{color:#111414}.dark-mode .h-hero__social li:nth-of-type(1){border-color:rgba(239,239,239,.1)}.services{padding:6.25em 0}.services__header{padding-bottom:3.75em}@media screen and (max-width:566px){.h-hero__title h1{margin-left:-5px}.h-hero__text p{font-size:20px;line-height:1.4}.services__header h2{max-width:8em}}.services__list{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;grid-column-gap:1.25em}.services__item{padding-left:2em}.services__item::before{position:absolute;width:1px;height:100%;background-color:rgba(17,20,20,.1);top:0}.services__item span{display:block;margin-bottom:80px;opacity:.1}@media screen and (max-width:767px){.footer__copy{order:1}.services__list{grid-template-columns:1fr}.services__item{padding-top:2em;padding-bottom:2em;padding-left:0}.services__item::before{top:auto;height:1px;width:100%}.services__item span{margin-bottom:40px}}.services__item h2{margin-bottom:.5em}.services__item p{max-width:17em}.dark-mode .services__item::before{background-color:rgba(239,239,239,.1)}.dark-mode .services__item span{opacity:.2}.projects{padding:6.25em 0}.projects__header{display:grid;align-items:flex-end;padding-bottom:1.25em}@media screen and (max-width:990px){.projects__header{grid-template-columns:6fr auto}}.projects__header div{display:flex}.projects__header span{margin-left:4px}@media screen and (max-width:566px){.projects__header p{display:none}}.projects__footer{padding-top:3em}.projects__footer h3{margin-bottom:12px}.projects__footer a{color:inherit}.project{position:relative;width:100%;display:flex;justify-content:space-between;align-items:flex-end;color:#111414;padding:3em 0;border-bottom:1px solid rgba(17,20,20,.1);cursor:pointer}.project__card,.project__image{position:absolute;z-index:1;pointer-events:none;left:0}.project:first-child{border-top:1px solid rgba(17,20,20,.1)}.dark-mode .process ul li,.dark-mode .project{border-color:rgba(239,239,239,.1)}.project .project__title{pointer-events:none}.project .project__info{pointer-events:none}@media screen and (max-width:767px){.services__item p{max-width:22em}.project .project__title{font-size:3.58em;line-height:1.1;letter-spacing:-.02em}.project .project__year{font-size:2.39em;line-height:1;letter-spacing:-.01em}}.project__image{top:-10%;width:41.87em;height:27.87em}.project__image img{width:100%;height:100%;object-fit:cover;object-position:center;opacity:0}.project.cc-active .project__image img{opacity:1}.project__card{top:0;width:41.87em;height:27.87em}.project__card__image,.project__card__inner{height:100%;position:relative;width:100%}.project__card__image{background-size:cover;background-position:50% 50%;opacity:0}.dark-mode .project{color:#efefef}.process{padding:6.25em 0}.process__grid{display:grid;grid-template-columns:1fr 1fr;grid-column-gap:1.25em}.process__grid--col:nth-of-type(1){max-width:34.68em}@media screen and (max-width:990px){.process__grid{grid-template-columns:1fr}.process__grid--col:nth-of-type(1){margin-bottom:40px;max-width:38em}}.process__title{padding-bottom:2em}.process p{max-width:31.87em}.process__list .dropdown__header{display:grid;grid-template-columns:1fr 1.25em;grid-column-gap:1.25em;padding:2em 0}.process__list .dropdown__header__content{display:grid;grid-template-columns:3.75em 1fr}.process__list .dropdown__header h3,.process__list .dropdown__header span{pointer-events:none}.process__list .dropdown__header span{margin-right:0}.process__list .dropdown__body__content{padding-left:3.75em}.process__list .dropdown__body__content p{max-width:31.25em}.legal .wrapper,.p-info__text{max-width:56.25em}.p-hero{padding-top:15em;padding-bottom:1.25em}.p-hero .wrapper{display:flex;justify-content:space-between;align-items:flex-end}.p-hero__content{display:flex;flex-direction:column;grid-gap:1.25em}.p-hero h1{opacity:0}.p-hero span{opacity:0}@media screen and (max-width:767px){.p-hero{padding-top:10em}.p-hero h1{font-size:3.58em;line-height:1.1;letter-spacing:-.02em}.p-hero__year{font-size:2.39em;line-height:1;letter-spacing:-.01em}}.p-hero-image,.p-hero-image .c-image-wrapper{position:relative}.p-hero-image .c-image-wrapper:before{display:block;content:" ";width:100%;padding-top:56.25%}.p-hero-image .c-image-wrapper>.content{position:absolute;top:0;left:0;right:0;bottom:0}@media screen and (max-width:767px){.p-hero-image .c-image-wrapper{position:relative}.p-hero-image .c-image-wrapper:before{display:block;content:" ";width:100%;padding-top:75%}.p-hero-image .c-image-wrapper>.content{position:absolute;top:0;left:0;right:0;bottom:0}}.p-info{padding:7.5em 0}.p-info__text p{font-size:2.02em;line-height:1.5}@media screen and (min-width:1600px){.p-info__text{max-width:48em}}.p-info__list{margin-bottom:2em;max-width:41.875em;margin-top:3.75em}.p-info__list li{display:grid;grid-template-columns:2fr 4fr;grid-column-gap:1.5em;padding:1.25em 0;border-bottom:1px solid rgba(17,20,20,.1)}.dark-mode .p-info li{border-color:rgba(239,239,239,.1)}.p-web{padding:7.5em 0}.p-web span{display:block;margin-bottom:1.25em}.p-web__title{display:block;margin-bottom:2em;max-width:44em}@media screen and (min-width:1600px){.p-web__title{max-width:36em}}.p-web__text{max-width:50em}.p-web a{color:inherit}.p-mockup .c-image-wrapper{background-color:rgba(17,20,20,.1);position:relative}.dark-mode .p-mockup .c-image-wrapper{background-color:rgba(239,239,239,.1)}.p-mockup .c-image-wrapper:before{display:block;content:" ";width:100%;padding-top:56.25%}.p-mockup .c-image-wrapper>.content{position:absolute;top:0;left:0;right:0;bottom:0}@media screen and (max-width:767px){.p-mockup .c-image-wrapper{position:relative}.p-mockup .c-image-wrapper:before{display:block;content:" ";width:100%;padding-top:75%}.p-mockup .c-image-wrapper>.content{position:absolute;top:0;left:0;right:0;bottom:0}}.p-next{padding-top:7.5em;padding-bottom:1.25em}.p-next__grid{display:grid;grid-template-columns:5fr 7fr;align-items:flex-end}.p-next span{opacity:.4}@media screen and (max-width:767px){.p-next__grid{grid-template-columns:1fr}.p-next span{margin-bottom:1.25em}.p-next__link{font-size:3.58em;line-height:1.1;letter-spacing:-.02em}}.p-next__link{color:#111414;filter:blur(4px);-webkit-transition:-webkit-filter 250ms cubic-bezier(.5,.7,.4,1);padding:10px;margin-bottom:-10px;margin-left:-13px}.p-next__link:hover{filter:blur(0)}.dark-mode .p-next__link,.dark-mode span{color:#efefef}.legal{padding-top:15em;padding-bottom:1.25em}@media screen and (max-width:767px){.legal{padding-top:10em}}@media screen and (min-width:1600px){.p-web__text{max-width:40em}.legal .wrapper{max-width:48em}}.legal h1{padding-bottom:1em}.legal h3{margin-bottom:.5em}.legal__item{margin-bottom:2em}.legal__item a{color:#111414}.footer, .footer__grid { margin-left: 32px; }
.footer .wrapper { margin-left: 0; padding-left: 32px; }

.project-tech-copy {
  margin-top: 1em;
  opacity: .84;
}

.p-hero-image.cc-contain .c-image-wrapper {
  background: #f7f6f1;
}

.p-hero-image.cc-contain .c-image-wrapper img {
  top: 0;
  height: 100%;
  object-fit: cover;
  padding: 0;
}

.dark-mode .p-hero-image.cc-contain .c-image-wrapper {
  background: #171916;
}

.project-gallery {
  padding: 0 0 7.5em;
}

.project-gallery__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2em;
  margin-bottom: 2em;
}

.project-gallery__header span {
  display: block;
  margin-bottom: .75em;
  opacity: .52;
}

.project-gallery__header h2 {
  font-size: 2.39em;
  line-height: 1;
  letter-spacing: -.01em;
}

.project-gallery__controls {
  display: flex;
  gap: .5em;
}

.project-gallery__control {
  width: 3em;
  height: 3em;
  border: 1px solid rgba(17,20,20,.16);
  border-radius: 50%;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.project-gallery__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(62vw, 1fr);
  gap: 1.25em;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
  padding-bottom: 1em;
  user-select: none;
}

.project-gallery__track::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  background: transparent !important;
}

.project-gallery__track.cc-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
}

.project-gallery__item {
  scroll-snap-align: start;
}

.project-gallery__item img {
  display: block;
  width: 100%;
  aspect-ratio: 1920 / 945;
  object-fit: cover;
  border: 1px solid rgba(17,20,20,.1);
  pointer-events: none;
}

.project-gallery__item figcaption {
  margin-top: .75em;
  font-size: .875em;
  line-height: 1.4;
  opacity: .68;
}

.dark-mode .project-gallery__control,
.dark-mode .project-gallery__item img {
  border-color: rgba(239,239,239,.14);
}

@media screen and (max-width: 767px) {
  .project-gallery__header {
    align-items: flex-start;
    flex-direction: column;
  }

  .project-gallery__track {
    grid-auto-columns: minmax(86vw, 1fr);
  }
}

/* Header/footer alignment overrides */
header .nav,
header .nav.cc-project {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  column-gap: 2.5em;
}

header .nav__theme {
  order: 1;
  margin-left: 0;
}

header .nav__logo {
  display: none;
}

header .nav__links {
  order: 2;
  margin-left: auto;
  justify-content: flex-end;
  column-gap: 2em;
}

header .nav.cc-project > .nav__link {
  order: 2;
  margin-left: auto;
  display: inline-flex;
  align-items: flex-start;
  line-height: 1.5;
}

header .nav.cc-project > .nav__next {
  order: 3;
  margin-left: 2em;
  display: inline-flex;
  align-items: flex-start;
  font-size: .8em;
  line-height: 1.5;
  opacity: 1;
}

header .nav.cc-project > .nav__next span {
  display: block;
  font-size: inherit;
  line-height: inherit;
}

@media screen and (max-width: 990px) {
  header .nav.cc-project > .nav__next {
    font-size: 13px;
  }
}

.footer,
.footer__grid {
  margin-left: 0;
}

.footer .wrapper {
  margin-left: auto;
  padding-left: 2.5em;
}

.footer__grid {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2em;
}

.footer__copy {
  order: 1;
  flex: 0 0 auto;
}

.footer__links {
  order: 2;
  margin-left: auto;
  justify-content: flex-end;
  flex-wrap: wrap;
  row-gap: .5em;
}

.footer__legal {
  order: 3;
  margin: 0 0 0 1em;
  flex: 0 0 auto;
}

@media screen and (max-width: 990px) {
  .footer .wrapper {
    padding-left: 20px;
  }
}

@media screen and (max-width: 767px) {
  header .nav,
  header .nav.cc-project {
    align-items: flex-start;
  }

  header .nav__links {
    column-gap: 1.25em;
    row-gap: .35em;
    flex-wrap: wrap;
  }

  .footer__grid {
    align-items: flex-start;
    flex-direction: column;
  }

  .footer__links {
    margin-left: 0;
    justify-content: flex-start;
  }

  .footer__legal {
    margin-left: 0;
  }
}

.h-hero {
  padding-top: 10em;
}

.h-hero__top {
  align-items: flex-start;
  position: relative;
}

.h-hero__sub {
  top: 0;
  padding-top: .35em;
}

.h-hero__title h1,
.h-hero__title h1 span {
  line-height: .76;
}

.h-hero__epigraph {
  margin-bottom: 2.5em;
  max-width: 36em;
  padding: .2em 0 .25em 1.35em;
  border-left: 2px solid rgba(17,20,20,.42);
}

.h-hero__epigraph p {
  margin-bottom: .38em;
}

.h-hero__epigraph .h-hero__epigraph-latin {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.15em;
  line-height: 1.12;
  letter-spacing: .01em;
}

.h-hero__epigraph .h-hero__epigraph-translation,
.h-hero__epigraph .h-hero__epigraph-author {
  font-size: .9em;
  line-height: 1.35;
  opacity: .76;
}

.h-hero__epigraph .h-hero__epigraph-translation {
  font-weight: 500;
}

.h-hero__epigraph-author cite {
  font-style: normal;
}

.dark-mode .h-hero__epigraph {
  border-color: rgba(239,239,239,.42);
}

.contact-hero {
  padding: 15em 0 3.5em;
}

.contact-hero__grid {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 1.5em;
  align-items: end;
}

.contact-hero h1 {
  font-size: 5.8em;
  line-height: .92;
  letter-spacing: -.03em;
}

.contact-hero p {
  max-width: 34em;
  margin-left: 0;
  font-size: 1em;
  line-height: 1.55;
}

.contact-section {
  padding-bottom: 1.25em;
}

.contact-rows {
  border-top: 1px solid rgba(17, 20, 20, 0.1);
}

.contact-row {
  display: grid;
  grid-template-columns: 35em minmax(0, 1fr);
  column-gap: 7.5em;
  padding: 2.8em 0 3.2em;
  border-bottom: 1px solid rgba(17, 20, 20, 0.1);
}

.contact-row:last-child {
  border-bottom: 0;
}

.contact-row h2 {
  font-size: 2.39em;
  line-height: 1.04;
  letter-spacing: -.01em;
}

.contact-row__content {
  max-width: 48em;
}

.contact-row__content--split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.15em 3em;
}


.contact-row__content p {
  margin: 0;
  font-size: 1em;
  line-height: 1.6;
}

.dark-mode .contact-rows,
.dark-mode .contact-row {
  border-color: rgba(239, 239, 239, 0.12);
}

.cv-hero {
  padding-top: 12em;
  padding-bottom: 5em;
}

.cv-hero__grid {
  display: grid;
  grid-template-columns: 7fr 5fr;
  column-gap: 1.25em;
  align-items: end;
}

.cv-kicker {
  display: block;
  margin-bottom: 1em;
  opacity: .52;
}

.cv-hero h1 {
  font-size: 8em;
  line-height: .9;
  letter-spacing: -.04em;
  max-width: 7em;
}

.cv-hero__summary p {
  font-size: 1.35em;
  line-height: 1.45;
  margin-bottom: 1.25em;
}

.cv-actions {
  display: flex;
  align-items: center;
  gap: 1.25em;
  flex-wrap: wrap;
}

.cv-print {
  border: 0;
  cursor: pointer;
}

.cv-body {
  padding-bottom: 7.5em;
}

.cv-layout {
  display: grid;
  grid-template-columns: 3fr 9fr;
  column-gap: 3.75em;
  align-items: start;
}

.cv-sidebar {
  position: sticky;
  top: 2em;
}

.cv-card {
  padding: 1.5em 0;
  border-top: 1px solid rgba(17,20,20,.14);
}

.cv-card:last-child {
  border-bottom: 1px solid rgba(17,20,20,.14);
}

.cv-card h2,
.cv-section h2 {
  font-size: 1.59em;
  line-height: 1;
  margin-bottom: 1em;
}

.cv-link-list li,
.cv-tag-list li,
.cv-meta-list div {
  margin-bottom: .75em;
}

.cv-link-list a {
  color: inherit;
}

.cv-tag-list li,
.cv-meta-list dt,
.cv-meta-list dd {
  font-size: .9em;
  line-height: 1.45;
}

.cv-meta-list div {
  display: grid;
  grid-template-columns: 4.5em 1fr;
  column-gap: 1em;
}

.cv-meta-list dd {
  margin: 0;
  opacity: .62;
}

.cv-section {
  padding: 3em 0;
  border-top: 1px solid rgba(17,20,20,.14);
}

.cv-section:last-child {
  border-bottom: 1px solid rgba(17,20,20,.14);
}

.cv-section__head {
  display: grid;
  grid-template-columns: 4em 1fr;
  column-gap: 1.25em;
  align-items: baseline;
}

.cv-section__head span,
.cv-item__meta {
  opacity: .52;
}

.cv-section p,
.cv-item p,
.cv-skill-grid p {
  font-size: 1em;
  line-height: 1.55;
}

.cv-item p.cv-tech {
  margin-top: .45em;
  opacity: .72;
}

.cv-lead {
  font-size: 1.45em !important;
  line-height: 1.45 !important;
  margin-bottom: .9em;
}

.cv-item {
  display: grid;
  grid-template-columns: 10em 1fr;
  column-gap: 1.25em;
  padding: 1.25em 0;
  border-top: 1px solid rgba(17,20,20,.08);
}

.cv-item h3,
.cv-skill-grid h3 {
  font-size: 1.18em;
  line-height: 1.2;
  margin-bottom: .35em;
}

.cv-item__link {
  display: inline-block;
  margin-top: .75em;
  color: inherit;
}

.cv-item__links {
  display: flex;
  column-gap: 1.75em;
  row-gap: .5em;
  flex-wrap: wrap;
}

.cv-skill-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25em 2.5em;
}

.cv-cert-list p {
  padding: .75em 0;
  border-top: 1px solid rgba(17,20,20,.08);
}

.dark-mode .cv-cert-list p {
  border-color: rgba(239,239,239,.08);
}

.dark-mode .cv-card,
.dark-mode .cv-card:last-child,
.dark-mode .cv-section,
.dark-mode .cv-section:last-child {
  border-color: rgba(239,239,239,.14);
}

.dark-mode .cv-item {
  border-color: rgba(239,239,239,.08);
}

@media screen and (max-width: 990px) {
  .cv-hero {
    padding-top: 10em;
    padding-bottom: 4em;
  }

  .cv-hero__grid,
  .cv-layout {
    grid-template-columns: 1fr;
    row-gap: 2.5em;
  }

  .cv-hero h1 {
    font-size: 4.8em;
  }

  .cv-hero__summary p {
    font-size: 18px;
  }

  .cv-sidebar {
    position: static;
  }
}

@media screen and (max-width: 640px) {
  .cv-section__head,
  .cv-item,
  .cv-skill-grid {
    grid-template-columns: 1fr;
  }

  .cv-section__head span,
  .cv-item__meta {
    margin-bottom: .5em;
  }
}

@media print {
  @page {
    size: A4;
    margin: 8mm;
  }

  body,
  html,
  #viewport {
    position: static;
    overflow: visible;
    height: auto;
    background: #fff !important;
    color: #111414 !important;
    font-size: 7.8pt;
  }

  header,
  .footer,
  .cv-actions,
  script {
    display: none !important;
  }

  .wrapper {
    max-width: none;
    padding: 0;
  }

  .cv-hero {
    padding: 0 0 8pt;
    border-bottom: 1px solid rgba(17,20,20,.18);
  }

  .cv-hero__grid,
  .cv-skill-grid {
    display: grid;
  }

  .cv-hero__grid {
    grid-template-columns: .9fr 1.1fr;
    column-gap: 14pt;
    align-items: end;
  }

  .cv-hero h1 {
    font-size: 26pt;
    line-height: .9;
    letter-spacing: 0;
  }

  .cv-kicker {
    margin-bottom: 3pt;
    font-size: 6.5pt;
    text-transform: uppercase;
    letter-spacing: .08em;
  }

  .cv-hero__summary p,
  .cv-lead,
  .cv-section p,
  .cv-item p,
  .cv-skill-grid p {
    font-size: 7.6pt !important;
    line-height: 1.25 !important;
  }

  .cv-hero__summary p {
    margin-bottom: 0;
  }

  .cv-body {
    padding-bottom: 0;
  }

  .cv-layout {
    display: block;
    padding-top: 8pt;
  }

  .cv-sidebar {
    position: static;
    display: grid;
    grid-template-columns: 1.1fr 1.35fr .65fr;
    column-gap: 12pt;
    padding: 5pt 0 7pt;
    margin-bottom: 8pt;
    border-top: 1px solid rgba(17,20,20,.16);
    border-bottom: 1px solid rgba(17,20,20,.16);
  }

  .cv-sidebar .cv-card:nth-child(3) {
    display: none;
  }

  .cv-card,
  .cv-card:last-child {
    padding: 0;
    margin-bottom: 0;
    border: 0;
  }

  .cv-card h2,
  .cv-section h2 {
    font-size: 8.5pt;
    line-height: 1;
    margin-bottom: 4pt;
    color: rgba(17,20,20,.5);
    font-weight: 700;
    text-transform: uppercase;
  }

  .cv-link-list li,
  .cv-tag-list li,
  .cv-meta-list div {
    margin-bottom: 2pt;
  }

  .cv-tag-list li,
  .cv-meta-list dt,
  .cv-meta-list dd {
    font-size: 6.9pt;
    line-height: 1.18;
  }

  .cv-meta-list div {
    grid-template-columns: 30pt 1fr;
    column-gap: 4pt;
  }

  .cv-main {
    display: block;
    column-count: 2;
    column-gap: 16pt;
    column-rule: 1px solid rgba(17,20,20,.08);
  }

  .cv-section {
    padding: 0 0 5pt;
    border-top: 1px solid rgba(17,20,20,.15);
    break-inside: avoid;
  }

  .cv-section:last-child {
    border-bottom: 0;
  }

  .cv-section__head {
    grid-template-columns: 16pt 1fr;
    column-gap: 5pt;
    align-items: baseline;
    padding-top: 4pt;
    margin-bottom: 2pt;
  }

  .cv-section__head span,
  .cv-item__meta {
    font-size: 6.2pt;
  }

  .cv-lead {
    margin-bottom: 3pt;
  }

  .cv-item {
    grid-template-columns: 39pt 1fr;
    column-gap: 6pt;
    padding: 3.2pt 0;
    border-top: 1px solid rgba(17,20,20,.08);
    break-inside: avoid;
  }

  .cv-item h3,
  .cv-skill-grid h3 {
    font-size: 7.8pt;
    line-height: 1.12;
    margin-bottom: 1.5pt;
    font-weight: 700;
  }

  .cv-item p.cv-tech {
    margin-top: 1.5pt;
    color: rgba(17,20,20,.68);
  }

  .cv-item__link {
    margin-top: 2pt;
  }

  .cv-skill-grid {
    grid-template-columns: 1fr 1fr;
    gap: 4pt 8pt;
  }

  .cv-cert-list p {
    padding: 2.2pt 0;
    font-size: 6.8pt !important;
    line-height: 1.16 !important;
    border-top: 1px solid rgba(17,20,20,.08);
  }
}

@media screen and (min-width: 991px) {
  .h-hero__sub {
    position: absolute;
    left: 49em;
    top: 6.9em;
    max-width: 32em;
    width: 32em;
  }
}

@media screen and (max-width: 990px) {
  .h-hero {
    padding-top: 10em;
  }

  .h-hero__sub {
    position: relative;
    left: auto;
    top: unset;
    width: auto;
    padding-top: 0;
  }
}


.publisher-note,
.project-publisher-note {
  padding: 6.25em 0;
  border-top: 1px solid rgba(17, 20, 20, 0.1);
}

.publisher-note__grid {
  display: grid;
  grid-template-columns: 4fr 8fr;
  column-gap: 3.75em;
  align-items: start;
}

.publisher-note span,
.project-publisher-note span,
.legal-hero span {
  display: block;
  margin-bottom: 1.25em;
  color: rgba(17, 20, 20, 0.52);
}

.publisher-note h2,
.project-publisher-note h2,
.legal-hero h1 {
  max-width: 10em;
  line-height: 0.96;
}

.publisher-note__content {
  max-width: 58em;
}

.publisher-note__content p {
  margin: 0 0 1.15em;
  font-size: 1.18em;
  line-height: 1.55;
}

.ecosystem-sites {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1em;
  margin-top: 2em;
}

.ecosystem-site {
  display: grid;
  grid-template-columns: 2.25em 1fr;
  column-gap: 1em;
  min-height: 14.5em;
  padding: 1.1em;
  color: inherit;
  border: 1px solid rgba(17, 20, 20, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.18);
  transition: border-color .25s ease, transform .25s ease, background-color .25s ease;
}

.ecosystem-site:hover {
  transform: translateY(-4px);
  border-color: rgba(17, 20, 20, 0.34);
  background: rgba(255, 255, 255, 0.28);
}

.ecosystem-site__index {
  margin: 0;
  font-size: .8em;
  color: rgba(17, 20, 20, 0.45);
}

.ecosystem-site h3 {
  margin: 0 0 .75em;
  font-size: 1.4em;
  line-height: 1;
}

.ecosystem-site > div {
  display: flex;
  flex-direction: column;
}

.ecosystem-site p {
  margin: 0 0 1.25em;
  font-size: .92em;
  line-height: 1.45;
}

.ecosystem-site small {
  display: block;
  margin-top: auto;
  overflow-wrap: anywhere;
  color: rgba(17, 20, 20, 0.56);
  font-size: .75em;
  line-height: 1.35;
}

.dark-mode .ecosystem-site {
  border-color: rgba(239, 239, 239, 0.14);
  background: rgba(239, 239, 239, 0.04);
}

.dark-mode .ecosystem-site:hover {
  border-color: rgba(239, 239, 239, 0.34);
  background: rgba(239, 239, 239, 0.07);
}

.dark-mode .ecosystem-site__index,
.dark-mode .ecosystem-site small {
  color: rgba(239, 239, 239, 0.58);
}

.home-journal {
  padding: 6.25em 0;
}

.home-journal__header {
  display: grid;
  grid-template-columns: 8fr 4fr;
  align-items: end;
  column-gap: 1.25em;
  padding-bottom: 2.5em;
}

.home-journal__header span {
  display: block;
  margin-bottom: 1.25em;
  color: rgba(17, 20, 20, 0.52);
}

.home-journal__header h2 {
  max-width: 9em;
  font-size: 3.58em;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.home-journal__header a {
  justify-self: end;
  color: inherit;
}

.home-journal__shelf {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .7em;
  align-items: stretch;
  width: 100%;
}

.home-journal__book {
  position: relative;
  display: flex;
  flex-direction: column;
  aspect-ratio: 1 / 1.414;
  min-height: 0;
  padding: 2em 1.25em 1.1em;
  color: #111414;
  border: 1px solid rgba(17, 20, 20, 0.06);
  border-radius: .72em;
  background: #f7faf9;
  box-shadow: none;
  overflow: hidden;
}

.home-journal__book::before {
  content: "";
  position: absolute;
  inset: .42em .5em auto .5em;
  height: 1px;
  background-color: rgba(17, 20, 20, 0.045);
}

.home-journal__book small {
  display: block;
  min-height: 0;
  margin-bottom: .55em;
  color: rgba(17, 20, 20, 0.48);
  font-size: .76em;
  line-height: 1.25;
}

.home-journal__book h3 {
  max-width: 10.75em;
  margin-bottom: 1.1em;
  font-size: 1.14em;
  line-height: 1.08;
  letter-spacing: 0;
  font-weight: 600;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-journal__book p {
  max-width: 23em;
  margin-bottom: 1em;
  color: rgba(17, 20, 20, 0.7);
  font-size: .62em;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 7;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-journal__meta {
  display: flex;
  justify-content: space-between;
  gap: .55em;
  margin-top: auto;
  padding-top: .9em;
  border-top: 1px solid rgba(17, 20, 20, 0.06);
  color: rgba(17, 20, 20, 0.48);
}

.home-journal__meta span {
  font-size: .52em;
  line-height: 1.35;
}

.home-journal__book:hover {
  transform: translateY(-.12em);
  box-shadow: none;
}

.home-journal__book {
  transition: transform .35s cubic-bezier(.5, .7, .4, 1), box-shadow .35s cubic-bezier(.5, .7, .4, 1);
}

.dark-mode .home-journal__book {
  color: #efefef;
  border-color: rgba(239, 239, 239, 0.1);
  background: #202525;
  box-shadow: none;
}

.dark-mode .home-journal__book::before,
.dark-mode .home-journal__meta {
  background-color: rgba(239, 239, 239, 0.08);
}

.dark-mode .home-journal__header span,
.dark-mode .home-journal__book small,
.dark-mode .home-journal__meta {
  color: rgba(239, 239, 239, 0.58);
}

.dark-mode .home-journal__book p {
  color: rgba(239, 239, 239, 0.72);
}

@media (max-width: 767px) {
  .home-journal__shelf {
    grid-template-columns: 1fr;
  }

  .home-journal__book {
    min-height: 18.5em;
    padding: 2.5em 1.5em 1.5em;
  }
}

.blog-hero {
  padding: 11em 0 4em;
}

.blog-hero span,
.blog-more span {
  display: flex;
  flex-wrap: wrap;
  gap: .75em;
  margin-bottom: 1.25em;
  color: rgba(17, 20, 20, 0.52);
}

.blog-post__meta {
  display: grid;
  grid-template-columns: minmax(4.5em, auto) minmax(12em, 1fr) auto auto;
  align-items: center;
  column-gap: 1.25em;
  row-gap: .45em;
  width: min(100%, 48em);
  margin-bottom: 1.25em;
  color: rgba(17, 20, 20, 0.52);
}

.blog-hero h1,
.blog-post h1 {
  max-width: 11em;
  font-size: 5.37em;
  line-height: 0.96;
  letter-spacing: -0.03em;
}

.blog-hero p,
.blog-post__lead {
  max-width: 48em;
  margin-top: 1.5em;
  font-size: 1.22em;
  line-height: 1.55;
}

.blog-post__image {
  max-width: 64em;
  margin: 3.5em 0 1em;
}

.blog-post__image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border: 1px solid rgba(17, 20, 20, 0.1);
}

.blog-post__image figcaption {
  margin-top: .8em;
  color: rgba(17, 20, 20, 0.56);
  font-size: .86em;
  line-height: 1.4;
}

.dark-mode .blog-post__image img {
  border-color: rgba(239, 239, 239, 0.14);
}

.dark-mode .blog-post__image figcaption {
  color: rgba(239, 239, 239, 0.58);
}

.blog-list {
  padding: 2em 0 7em;
}

.blog-card {
  display: grid;
  grid-template-columns: 4fr 8fr;
  column-gap: 3.75em;
  padding: 2.2em 0;
  color: inherit;
  border-top: 1px solid rgba(17, 20, 20, 0.1);
}

.blog-card:last-child {
  border-bottom: 1px solid rgba(17, 20, 20, 0.1);
}

.blog-card > span {
  color: rgba(17, 20, 20, 0.42);
}

.blog-card small {
  display: block;
  margin-bottom: .8em;
  color: rgba(17, 20, 20, 0.52);
  font-size: .82em;
}

.blog-card h2 {
  max-width: 16em;
  margin-bottom: .5em;
  font-size: 2.39em;
  line-height: 1.05;
  letter-spacing: -0.01em;
}

.blog-card p {
  max-width: 52em;
  font-size: 1em;
  line-height: 1.55;
}

.blog-post {
  padding: 10em 0 5em;
}

.blog-post__meta a,
.blog-post__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 1.5em;
  padding: 0;
  line-height: 1.5;
  color: inherit;
}

.blog-post__author {
  margin-top: 1.4em;
  color: rgba(17, 20, 20, 0.58);
  font-size: .95em;
  line-height: 1.4;
}

.blog-post__author strong {
  color: #111414;
  font-weight: 400;
}

.dark-mode .blog-post__author {
  color: rgba(239, 239, 239, 0.62);
}

.dark-mode .blog-post__author strong {
  color: #efefef;
}

.blog-post__signature {
  max-width: 56em;
  margin-top: 3em;
  padding-top: 1.25em;
  border-top: 1px solid rgba(17, 20, 20, 0.1);
  color: #111414;
  font-size: 1.08em;
  line-height: 1.5;
}

.blog-post__signature span {
  display: block;
  margin-bottom: .35em;
  color: rgba(17, 20, 20, 0.52);
  font-size: .8em;
}

.dark-mode .blog-post__signature {
  border-color: rgba(239, 239, 239, 0.1);
  color: #efefef;
}

.dark-mode .blog-post__signature span {
  color: rgba(239, 239, 239, 0.58);
}

.blog-post__body {
  max-width: 56em;
  margin-top: 4em;
}

.blog-post__body section {
  display: grid;
  grid-template-columns: 4fr 8fr;
  column-gap: 3.75em;
  padding: 2em 0;
  border-top: 1px solid rgba(17, 20, 20, 0.1);
}

.blog-post__body h2 {
  font-size: 1.4em;
  line-height: 1.05;
}

.blog-post__body p {
  margin: 0 0 1em;
  font-size: 1.08em;
  line-height: 1.68;
}

.blog-post__body.cc-essay {
  max-width: 60em;
}

.blog-post__body.cc-essay p {
  margin-bottom: 1.35em;
  font-size: 1.12em;
  line-height: 1.78;
}

.blog-post__body.cc-essay p:last-child {
  margin-top: 2.5em;
  color: rgba(17, 20, 20, 0.58);
}

.dark-mode .blog-post__body.cc-essay p:last-child {
  color: rgba(239, 239, 239, 0.62);
}

.blog-more {
  padding: 2em 0 5em;
}

.dark-mode .blog-hero span,
.dark-mode .blog-post__meta,
.dark-mode .blog-more span,
.dark-mode .blog-card > span,
.dark-mode .blog-card small {
  color: rgba(239, 239, 239, 0.58);
}

.dark-mode .blog-card,
.dark-mode .blog-card:last-child,
.dark-mode .blog-post__body section {
  border-color: rgba(239, 239, 239, 0.12);
}

.legal-hero {
  padding: 9em 0 4.5em;
}

.legal-hero h1 {
  margin-bottom: 0.35em;
}

.legal-hero p {
  max-width: 48em;
  font-size: 1.2em;
  line-height: 1.55;
}

.legal-content {
  padding-bottom: 7em;
}

.legal__item {
  display: grid;
  grid-template-columns: 4fr 8fr;
  column-gap: 3.75em;
  padding: 2.2em 0;
  border-top: 1px solid rgba(17, 20, 20, 0.1);
}

.legal__item > span {
  color: rgba(17, 20, 20, 0.45);
}

.legal__item h2 {
  margin-bottom: 0.7em;
  font-size: 2em;
}

.legal__item p {
  max-width: 58em;
  margin: 0 0 0.9em;
  line-height: 1.6;
}

.cookie-consent {
  position: fixed;
  right: 2em;
  bottom: 2em;
  z-index: 1000;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.25em;
  align-items: center;
  width: min(48em, calc(100vw - 4em));
  padding: 1.1em 1.2em;
  color: #111414;
  background: rgba(239, 239, 239, 0.96);
  border: 1px solid rgba(17, 20, 20, 0.14);
  backdrop-filter: blur(16px);
}

.dark-mode .cookie-consent {
  color: #efefef;
  background: rgba(17, 20, 20, 0.94);
  border-color: rgba(239, 239, 239, 0.18);
}

.cookie-consent__copy strong {
  display: block;
  margin-bottom: 0.35em;
  font-size: 1.02em;
  font-weight: 400;
}

.cookie-consent__copy p {
  max-width: 34em;
  margin: 0;
  color: rgba(17, 20, 20, 0.68);
  line-height: 1.45;
}

.dark-mode .cookie-consent__copy p {
  color: rgba(239, 239, 239, 0.7);
}

.cookie-consent__actions {
  display: flex;
  gap: 0.55em;
  align-items: center;
  justify-content: flex-end;
}

.cookie-consent__link,
.cookie-consent__button {
  display: inline-flex;
  min-height: 2.6em;
  padding: 0 1em;
  align-items: center;
  justify-content: center;
  color: inherit;
  background: transparent;
  border: 1px solid rgba(17, 20, 20, 0.16);
  font: inherit;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}

.dark-mode .cookie-consent__link,
.dark-mode .cookie-consent__button {
  border-color: rgba(239, 239, 239, 0.2);
}

.cookie-consent__button.cc-primary {
  color: #efefef;
  background: #111414;
  border-color: #111414;
}

.dark-mode .cookie-consent__button.cc-primary {
  color: #111414;
  background: #efefef;
  border-color: #efefef;
}

@media (max-width: 990px) {
  .contact-hero {
    padding-top: 10em;
  }

  .contact-hero__grid,
  .contact-row,
  .contact-row__content--split {
    grid-template-columns: 1fr;
  }

  .contact-hero__grid,
  .contact-row,
  .contact-row__content--split {
    row-gap: 1.25em;
  }

  .contact-hero h1 {
    font-size: 3.58em;
    line-height: 1.05;
    letter-spacing: -.02em;
  }

  .contact-hero p {
    max-width: 100%;
    margin-left: 0;
  }

  .contact-row {
    padding: 2em 0 2.4em;
    column-gap: 0;
  }

  .publisher-note__grid,
  .legal__item {
    grid-template-columns: 1fr;
    row-gap: 1.6em;
  }

  .publisher-note h2,
  .project-publisher-note h2,
  .legal-hero h1 {
    max-width: 100%;
  }

  .publisher-note__content p,
  .legal-hero p {
    font-size: 1em;
  }

  .ecosystem-sites {
    grid-template-columns: 1fr;
  }

  .ecosystem-site {
    min-height: auto;
  }

  .home-journal__header {
    grid-template-columns: 1fr;
  }

  .home-journal__header {
    row-gap: 1.5em;
  }

  .home-journal__header a {
    justify-self: start;
  }

  .home-journal__shelf {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .home-journal__book {
    min-height: 23em;
  }

  .blog-hero {
    padding-top: 9em;
  }

  .blog-hero h1,
  .blog-post h1 {
    max-width: 100%;
    font-size: 3.58em;
    line-height: 1.05;
    letter-spacing: -0.02em;
  }

  .blog-post__meta {
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }

  .blog-post__meta a {
    grid-column: 1 / -1;
  }

  .blog-card,
  .blog-post__body section {
    grid-template-columns: 1fr;
    row-gap: 1.25em;
  }

  .cookie-consent {
    right: 1em;
    bottom: 1em;
    grid-template-columns: 1fr;
    width: calc(100vw - 2em);
  }

  .cookie-consent__actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}
