@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url('assets/fonts/cormorant-garamond-light.ttf') format('truetype')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300;font-display:swap;src:url('assets/fonts/cormorant-garamond-light-italic.ttf') format('truetype')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/cormorant-garamond-regular.ttf') format('truetype')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/cormorant-garamond-italic.ttf') format('truetype')}
:root{--ink:#294858;--font:'Cormorant Garamond',serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#bfd8e9;font-family:var(--font);font-size:21px;font-weight:400}button,input,a{font:inherit;color:inherit}a{text-decoration:none}button{border:0;background:none;cursor:pointer}a:focus-visible,button:focus-visible{outline:1px solid var(--ink);outline-offset:7px}::selection{background:#fff8d7}.skip{position:fixed;top:-100px;left:20px;padding:10px;background:#eef5fa;z-index:10}.skip:focus{top:10px}.sky{position:relative;isolation:isolate;min-height:100svh;background:#bad7ec}.sky:before{content:'';position:absolute;inset:0;z-index:-2;background:url('assets/fresco-sky.png') center 55%/cover no-repeat}.sky:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#a7d0f04a,#c7e2f128 50%,#b9d8ed40);mix-blend-mode:color}.header{display:flex;align-items:center;justify-content:space-between;height:128px;margin:0 5%;border-bottom:1px solid #46677730;position:relative;z-index:4}.wordmark{font-size:58px;font-weight:300;line-height:.9;letter-spacing:-2px}.wordmark-caption{display:block;font-size:16px;letter-spacing:1px;margin-top:12px;text-align:center}.header nav{display:flex;gap:42px;font-size:22px}.header nav a{padding:5px 0;border-bottom:1px solid transparent}.header nav a:hover,.header nav a[aria-current]{border-color:#46677760}.languages{display:flex;align-items:center;gap:5px;font-size:17px}.languages button{padding:10px 5px;opacity:.55}.languages button[aria-pressed=true]{opacity:1;text-decoration:underline;text-underline-offset:5px}h1,h2,p{margin-top:0}h1,h2{font-weight:300}h1{font-size:clamp(2rem,9vw + .25rem,106px);line-height:.96;letter-spacing:-2px;margin-bottom:22px}em{font-weight:300}.home-page .sky{display:flex;flex-direction:column;min-height:100svh;overflow:hidden}.hero-copy{text-align:center;position:relative;margin:0;min-width:0;z-index:2}.eyebrow{font-size:23px;font-style:italic;margin-bottom:23px;line-height:1.3}.hero-subtitle{font-size:23px;line-height:1.35}.book-stage{position:relative;width:min(45vw,640px);max-width:100%;margin:24px auto;align-self:center;z-index:1}.floating-book{position:relative;animation:hover-book 6s ease-in-out infinite;isolation:isolate}.book-crop{position:relative;aspect-ratio:1875/1000;overflow:hidden;z-index:2}.book-crop img{position:absolute;width:121.333333%;max-width:none;height:auto;left:-10.666667%;top:-65%;display:block}.book-light{position:absolute;z-index:0;left:20%;top:8%;width:60%;height:105%;border-radius:50%;background:radial-gradient(ellipse,#fffdebdf, #fff8d778 24%,#fff6d929 50%,transparent 72%);filter:blur(18px);animation:breathe 5s ease-in-out infinite}.light-rays{position:absolute;inset:-22% 24% 15%;z-index:1;clip-path:polygon(0 0,100% 0,55% 100%,45% 100%);background:linear-gradient(0deg,#fffbea88,transparent);filter:blur(14px)}.hero-bottom{position:relative;text-align:center;min-width:0;z-index:3}.discover{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:58px;max-width:calc(100vw - 40px);padding:14px 30px;border:1px solid #fffcf3;border-radius:999px;background:linear-gradient(135deg,#fffdf5f5,#eef5f4ed);color:#294858;font-size:25px;font-style:italic;line-height:1.2;box-shadow:0 0 30px #fff8df66,0 8px 28px #29485820,inset 0 0 0 4px #ffffff45;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.discover span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;margin:0;border:1px solid #607b8540;border-radius:50%;font-size:18px;font-style:normal;transition:transform .25s ease}.discover:hover{transform:translateY(-3px);background:#fffdf5;box-shadow:0 0 40px #fff8df99,0 12px 32px #2948582b,inset 0 0 0 4px #ffffff70}.discover:hover span{transform:translate(1px,-1px)}.discover:focus-visible{outline:2px solid #294858;outline-offset:5px}.discover:active{transform:translateY(0)}.contact-main{max-width:1250px;margin:auto;padding:48px 50px 28px}.contact-heading{text-align:center}.contact-heading .eyebrow{margin-bottom:20px}.contact-heading h1{font-size:clamp(2rem,8vw,88px);margin-bottom:44px}.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:60px;align-items:center}.contact-details{padding:0 0 0 25px}.contact-details>div+div{margin-top:27px}.contact-details h2{font-size:30px;font-style:italic;margin:0 0 9px;line-height:1.1}.contact-details p,.contact-details address,.contact-details a{font-size:23px;line-height:1.3;font-style:normal;margin:0}.email{border-bottom:1px solid #48687860}.map{margin:0}.map svg{width:100%;height:auto;display:block;box-shadow:0 15px 60px #55728419;border:1px solid #ffffff77;background:#edf0e7}.map text{font-family:var(--font);font-weight:400}.map-city{font-size:31px;font-style:italic}.map-lake{font-size:30px;font-style:italic;letter-spacing:3px}.map figcaption{text-align:center;font-style:italic;font-size:20px;margin-top:12px}.concept-note{text-align:center;font-style:italic;font-size:17px;margin:32px 0 0;color:#4d6775}.contact-page .sky:after{background:#b4d8f17a}.contact-page .sky:before{background-position:center;background-attachment:fixed;opacity:.75}@keyframes hover-book{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-15px) rotate(1deg)}}@keyframes breathe{0%,100%{opacity:.7;transform:scale(.97)}50%{opacity:1;transform:scale(1.06)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.book-descent{transform:none!important}}

/* White hero copy over a darker area of the painted sky. */
.home-page .hero-copy{color:#fff;text-shadow:0 2px 12px #0b213c65}
.home-page .hero-copy h1,.home-page .hero-copy h1 em{font-family:var(--font);font-style:normal;font-weight:300}
.home-page .sky:after{mix-blend-mode:normal;background:linear-gradient(180deg,rgba(18,43,63,.62) 0%,rgba(18,43,63,.74) 42%,rgba(18,43,63,.42) 59%,rgba(18,43,63,.08) 79%,transparent 100%)}

.home-page .header{color:#fff;border-bottom-color:#ffffff35;text-shadow:0 1px 7px #0b213c50}.home-page .header nav a:hover,.home-page .header nav a[aria-current]{border-color:#ffffff70}


/* Keep text, illustration and navigation in flow when the window shrinks or text grows. */
.header { flex-shrink: 0; gap: 20px; }
.header nav { flex-wrap: wrap; justify-content: center; }
.home-page main {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto 1fr auto;
  gap: 12px;
  padding: clamp(24px, 4svh, 45px) max(16px, 4vw) clamp(24px, 4svh, 42px);
}
h1, h2, p, address, .email { overflow-wrap: anywhere; }
.hero-subtitle { max-width: 34em; margin: 0 auto; }
.discover { max-width: 100%; }
.contact-layout > * { min-width: 0; }

@media (max-width: 1000px) {
  .header { height: 110px; }
  .book-stage { width: min(70vw, 580px); }
  .contact-layout { gap: 30px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); }
  .contact-main { padding-left: 35px; padding-right: 35px; }
  .contact-details { padding: 0; }
  .contact-details p, .contact-details address, .contact-details a { font-size: 21px; }
  .contact-details h2 { font-size: 27px; }
}
@media (max-width: 650px) {
  .header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    height: auto;
    min-height: 132px;
    margin: 0 6%;
    padding: 18px 0;
    gap: 16px 12px;
    align-content: center;
  }
  .wordmark { font-size: 45px; letter-spacing: -1px; justify-self: start; }
  .wordmark-caption { font-size: 11px; letter-spacing: .8px; margin-top: 9px; }
  .header .languages { grid-column: 2; grid-row: 1; justify-self: end; font-size: 14px; gap: 0; }
  .languages button { padding: 10px 7px; }
  .header nav { grid-column: 1 / -1; grid-row: 2; gap: 12px 32px; font-size: 20px; }
  h1 { line-height: 1; letter-spacing: -1px; }
  .eyebrow { font-size: 20px; }
  .hero-subtitle { font-size: 20px; line-height: 1.35; max-width: 340px; }
  .book-stage { width: min(100%, 480px); }
  .discover { font-size: 22px; padding: 14px 20px; gap: 14px; }
  .contact-main { padding: 32px 7% 25px; }
  .contact-heading h1 { margin-bottom: 32px; }
  .contact-layout { grid-template-columns: minmax(0, 1fr); gap: 35px; }
  .contact-details { text-align: center; }
  .contact-details > div + div { margin-top: 24px; }
  .contact-details h2 { font-size: 29px; }
  .contact-details p, .contact-details address, .contact-details a { font-size: 23px; }
  .map figcaption { font-size: 19px; }
  .concept-note { font-size: 16px; margin-top: 27px; }
  .contact-page .sky:before { background-attachment: scroll; }
}
@media (max-height: 650px) and (min-width: 651px) {
  .header { height: 96px; }
  .home-page h1 { font-size: clamp(2rem, 10svh, 72px); }
  .book-stage { width: min(40vw, 50svh, 480px); }
}

/* Do not filter .book-crop: WebKit can stop painting its cached image on
   repeat navigation when overflow clipping, a filter and animated ancestors
   are combined. The artwork already includes its own shading. */
