@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url("/opening/dm-sans-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("/opening/cormorant-garamond-latin.woff2") format("woff2");
}
:root {
  color-scheme: light;
  --paper: #f3e9dd;
  --ink: #1e303d;
  --muted: #354651;
  --text-ground: rgb(243 233 221 / 82%);
  --brand: #08336c;
  --paint: linear-gradient(#08336c, #08336c);
  --reading: 16px;
  --ev-text-scale: 1;
  --page-gutter: 30px;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #304862;
  --ink: #eee6d7;
  --muted: #dededb;
  --text-ground: rgb(48 72 98 / 90%);
  --brand: #d89c7d;
  --paint: linear-gradient(135deg, #d89c7d, #facaa7);
}
* {
  box-sizing: border-box;
}
html {
  min-height: 100%;
  background: var(--paper);
}
body {
  margin: 0;
  min-width: 280px;
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--paper);
  color: var(--ink);
  font-family: "DM Sans", sans-serif;
  font-size: calc(var(--reading) * var(--ev-text-scale));
  -webkit-text-size-adjust: 100%;
}
.landscape {
  position: fixed;
  inset: 0;
  pointer-events: none;
}
.landscape {
  background-image: url("/opening/orizzonte-light-wide-clean-v1-1920.webp");
  background-position: 78% center;
  background-size: cover;
  background-repeat: no-repeat;
}
[data-theme="dark"] .landscape {
  background-image: url("/opening/orizzonte-dark-wide-clean-v1-1920.webp");
}
.page {
  position: relative;
  overflow: clip;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  padding: max(36px, env(safe-area-inset-top)) max(30px, env(safe-area-inset-right))
    max(24px, env(safe-area-inset-bottom)) max(30px, env(safe-area-inset-left));
}
.masthead {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}
.brand {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 9px;
}
.brand-symbol {
  display: block;
  width: 72px;
  height: 38.3px;
  background: var(--paint);
  mask: url("/opening/emovibe-symbol.svg") center / contain no-repeat;
}
.brand-name {
  display: block;
  width: 171px;
  height: 49.28px;
  background: var(--paint);
  mask: url("/opening/emovibe-wordmark.svg") left center / contain no-repeat;
}
.theme-toggle {
  border: 0;
  background: var(--paper);
  color: var(--ink);
  padding: 12px;
  min-height: 44px;
  min-width: 44px;
  cursor: pointer;
  border-radius: 50%;
  -webkit-tap-highlight-color: transparent;
}
.theme-toggle[hidden] {
  display: none;
}
.theme-toggle .sun,
[data-theme="dark"] .theme-toggle .moon {
  display: none;
}
[data-theme="dark"] .theme-toggle .sun {
  display: block;
}
.theme-toggle svg {
  vertical-align: middle;
}
main {
  margin-top: auto;
  padding-top: 120px;
  padding-bottom: 24px;
  max-width: 34em;
}
.copy {
  position: relative;
  isolation: isolate;
  display: flow-root;
  width: fit-content;
  max-width: 100%;
}
/* The constant center protects all text; only the margins fade into the photo. */
.copy::before,
footer a::before {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  inset: -64px -80px;
  background: var(--text-ground);
  mask-image:
    linear-gradient(to right, transparent, #000 72px, #000 calc(100% - 72px), transparent),
    linear-gradient(to bottom, transparent, #000 56px, #000 calc(100% - 56px), transparent);
  mask-composite: intersect;
}
.eyebrow {
  margin: 0 0 20px;
  font-size: 0.75em;
  letter-spacing: 0.09em;
  font-weight: 500;
  color: var(--ink);
}
h1 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: 2.5em;
  line-height: 1.08;
  letter-spacing: -0.025em;
  margin: 0;
  text-wrap: balance;
}
.message {
  font-size: 0.9375em;
  font-weight: 500;
  line-height: 1.65;
  color: var(--muted);
  margin: 24px 0 0;
}
[data-theme="dark"] h1,
[data-theme="dark"] .message {
  font-weight: 400;
}
footer {
  margin-top: 0;
  padding-top: 20px;
}
footer a {
  position: relative;
  isolation: isolate;
  display: inline-block;
  color: var(--muted);
  font-size: 0.75em;
  text-underline-offset: 5px;
  text-decoration-thickness: 1px;
}
footer a::before {
  inset: -8px -12px;
  mask-image:
    linear-gradient(to right, transparent, #000 8px, #000 calc(100% - 8px), transparent),
    linear-gradient(to bottom, transparent, #000 4px, #000 calc(100% - 4px), transparent);
}
a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--paper);
}
@media (max-width: 350px) {
  :root {
    --page-gutter: 20px;
  }
  .page {
    padding-left: 20px;
    padding-right: 20px;
  }
  .brand-symbol {
    width: 64px;
    height: 34px;
  }
  .brand-name {
    width: 155px;
    height: 45px;
  }
  h1 {
    font-size: 2em;
  }
  main {
    padding-top: 80px;
  }
}
@media (min-width: 520px) and (max-aspect-ratio: 1/1) {
  :root {
    --page-gutter: 7vw;
  }
  .page {
    padding-left: 7vw;
    padding-right: 7vw;
    padding-top: 6vh;
  }
  main {
    margin-top: auto;
    max-width: 30em;
  }
  h1 {
    font-size: 3.125em;
  }
}
@media (max-width: 699px), (max-aspect-ratio: 1/1) {
  .copy::before {
    inset: -64px auto -100vh calc(-1 * var(--page-gutter));
    width: 100vw;
    mask-image: linear-gradient(to bottom, transparent, #000 56px);
  }
  footer a::before {
    display: none;
  }
}
@media (min-width: 700px) and (min-aspect-ratio: 1/1) {
  .landscape {
    background-image: url("/opening/orizzonte-light-wide-clean-v1-1920.webp");
    background-size: cover;
    background-position: right center;
  }
  [data-theme="dark"] .landscape {
    background-image: url("/opening/orizzonte-dark-wide-clean-v1-1920.webp");
    background-position: right center;
  }
  .page {
    padding: max(40px, 6vh) 6vw max(28px, 4vh);
  }
  .brand-symbol {
    width: calc(var(--reading) * 4.5);
    height: calc(var(--reading) * 2.3934);
  }
  .brand-name {
    width: calc(var(--reading) * 10.6942);
    height: calc(var(--reading) * 3.08);
  }
  main {
    width: 49%;
    max-width: 34em;
    margin-top: auto;
    padding-top: 10vh;
    padding-bottom: 5vh;
  }
  h1 {
    font-size: 3em;
  }
  footer {
    margin-top: 0;
  }
}
@media (min-width: 1100px) and (min-height: 640px) {
  :root {
    --reading: clamp(16px, min(1.15vw, 1.9vh), 42px);
  }
}
@media (min-width: 1921px) and (min-aspect-ratio: 1/1) {
  .landscape {
    background-image:
      url("/opening/orizzonte-light-wide-clean-v1-2560.webp"),
      url("/opening/orizzonte-light-wide-clean-v1-1920.webp");
  }
  [data-theme="dark"] .landscape {
    background-image:
      url("/opening/orizzonte-dark-wide-clean-v1-2560.webp"),
      url("/opening/orizzonte-dark-wide-clean-v1-1920.webp");
  }
}
@media (min-width: 2561px) and (min-aspect-ratio: 1/1) {
  .landscape {
    background-image:
      url("/opening/orizzonte-light-wide-clean-v1-3840.webp"),
      url("/opening/orizzonte-light-wide-clean-v1-1920.webp");
  }
  [data-theme="dark"] .landscape {
    background-image:
      url("/opening/orizzonte-dark-wide-clean-v1-3840.webp"),
      url("/opening/orizzonte-dark-wide-clean-v1-1920.webp");
  }
}
@media (min-width: 700px) and (max-height: 550px) and (min-aspect-ratio: 1/1) {
  .page {
    padding-top: 24px;
    padding-bottom: 20px;
  }
  .brand {
    flex-direction: row;
    align-items: center;
    gap: 14px;
  }
  .brand-symbol {
    width: 48px;
    height: 26px;
  }
  .brand-name {
    width: 132px;
    height: 38px;
  }
  main {
    width: 65%;
    padding-top: 40px;
    padding-bottom: 32px;
  }
  h1 {
    font-size: 2.3em;
  }
  .message {
    margin-top: 16px;
  }
  .eyebrow {
    margin-bottom: 14px;
  }
}
@media (min-aspect-ratio: 1672/941) and (min-width: 1100px) {
  .landscape {
    background-size: auto 100%;
  }
}
