/* Le jour dessine l'atelier. The final tableau shares the light of the sculpture. */
.journey-ending.atelier-ending {
  --atelier-progress: 0;
  --atelier-entrance: 0;
  --atelier-copy-presence: 1;
  --atelier-light-x: 68%;
  --atelier-light-y: 25%;
  height: 280svh;
  min-height: 0;
  display: block;
  padding: 0;
  background: none;
  position: relative;
}
.atelier-stage {
  height: 100svh;
  min-height: 640px;
  position: sticky;
  top: 0;
  isolation: isolate;
  overflow: hidden;
}
.atelier-stage::before,
.atelier-stage::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.atelier-stage::before {
  z-index: -1;
  background:
    linear-gradient(121deg, transparent 14%, #65807b10 31%, transparent 31.5%, transparent 61%, #65807b0f 79%, transparent 80%),
    radial-gradient(ellipse at var(--atelier-light-x) var(--atelier-light-y), #ffffff18 0%, transparent 65%),
    linear-gradient(90deg, #edf1eb28, transparent 45%, #d3e0df12);
  opacity: var(--atelier-entrance);
}
.atelier-stage::after {
  z-index: 0;
  opacity: calc(.035 * var(--atelier-entrance));
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='paper'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23paper)' opacity='.6'/%3E%3C/svg%3E");
}
.atelier-copy {
  position: absolute;
  z-index: 3;
  left: var(--space);
  top: 43%;
  translate: 0 -42%;
  width: min(40%, 520px);
  color: var(--foreground);
  opacity: var(--atelier-copy-presence);
  transform: translateY(calc((1 - var(--atelier-copy-presence)) * 18px));
}
.atelier-copy > .eyebrow {
  color: #37554f;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .04em;
  margin-bottom: 31px;
}
.journey-ending .atelier-copy h2 {
  font-family: var(--serif);
  font-size: clamp(71px, 7.45vw, 127px);
  line-height: .94;
  letter-spacing: -.035em;
  font-weight: 400;
  margin: 0 0 30px;
}
.journey-ending .atelier-copy h2 em {
  color: #527773;
}
.journey-ending .atelier-copy p {
  color: #385951;
  font-size: 15px;
  line-height: 1.85;
  max-width: 325px;
  margin: 0 0 20px;
}
.atelier-copy-note { display: block; margin-top: 8px; }
.atelier-copy .text-link {
  color: #193a36;
  gap: 30px;
  font-size: 14px;
  border-color: #193a3660;
}
.atelier-copy .text-link:hover { color: #a45840; }
.atelier-copy:focus-within { opacity: 1; transform: none; }
.atelier-register {
  position: absolute;
  z-index: 3;
  left: 45%;
  right: var(--space);
  bottom: 43px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 25px;
  opacity: var(--atelier-register-presence, 1);
  transform: translateY(calc((1 - var(--atelier-register-presence, 1)) * 12px));
}
.atelier-register:focus-within { opacity: 1; transform: none; background: #edf1e8eb; }
.atelier-register a {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 9px 12px;
  padding: 15px 0 4px;
  min-height: 76px;
  border-top: 1px solid #193a3652;
  transition: border-color .35s;
}
.atelier-register a > span:first-child {
  font-family: var(--mono);
  font-size: 10px;
  color: #4b6661;
  align-self: center;
}
.atelier-register strong {
  font-family: var(--serif);
  font-size: clamp(23px, 2.4vw, 35px);
  line-height: 1;
  font-weight: 400;
}
.atelier-register a > span:last-child {
  grid-column: 2;
  font-family: var(--sans);
  font-size: 11px;
  line-height: 1.5;
  color: #4b6661;
}
.atelier-register a:hover { border-color: #a45840; }
.atelier-register a:hover strong { color: #a45840; }
.atelier-coda {
  position: absolute;
  bottom: 48px;
  left: var(--space);
  z-index: 3;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .015em;
  line-height: 1.7;
  color: #4b6661;
}

/* The photographic tableau remains composed when the WebGL scene is unavailable. */
.atelier-fallback {
  position: absolute;
  z-index: 1;
  inset: 14% 2% 19% 42%;
  pointer-events: none;
  perspective: 1000px;
  transform-style: preserve-3d;
}
.atelier-fallback > figure {
  position: absolute;
  margin: 0;
  overflow: hidden;
  background: #f1f3ed;
  box-shadow: 10px 19px 27px #34534b21, 1px 1px 0 #34534b50;
}
.atelier-fallback img { width: 100%; height: 100%; object-fit: cover; }
.atelier-fallback > figure:nth-child(1) {
  width: 61%; height: 45%; left: 8%; top: 6%;
  transform: rotate(-7deg) rotateY(-12deg);
  z-index: 3;
}
.atelier-fallback > figure:nth-child(2) {
  width: 32%; height: 66%; right: 1%; top: 11%;
  transform: rotate(9deg) rotateY(11deg);
  z-index: 4;
}
.atelier-fallback > figure:nth-child(3) {
  width: 58%; height: 44%; left: 1%; bottom: -2%;
  transform: rotate(5deg) rotateY(-7deg);
  z-index: 2;
}
.atelier-fallback > figure:nth-child(4) {
  width: 43%; height: 39%; left: -4%; top: 12%;
  transform: rotate(-13deg) rotateY(-8deg);
  z-index: 1;
}
.atelier-fallback > figure:nth-child(5) {
  width: 37%; height: 45%; right: 20%; top: 33%;
  transform: rotate(14deg) rotateY(9deg);
  z-index: 1;
}
.atelier-fallback > figure:nth-child(6) {
  width: 41%; height: 38%; right: 17%; bottom: -4%;
  transform: rotate(-5deg) rotateY(6deg);
  z-index: 1;
}
.atelier-fallback > figure:nth-child(n+4) img { object-fit: contain; }
.world-ready:not(.world-unavailable) .atelier-ending[data-atelier-ready="true"] .atelier-fallback { visibility: hidden; }
.world-unavailable .atelier-stage { background: #e7eeea; }
.world-unavailable .atelier-copy { opacity: 1; transform: none; }
.world-unavailable .atelier-register { opacity: 1; transform: none; }
.world-unavailable .atelier-copy h2,
.world-unavailable .atelier-copy p,
.world-unavailable .atelier-copy .eyebrow,
.world-unavailable .atelier-copy .text-link { color: #193a36; text-shadow: none; }

/* Pine ink closes the story without another screen of empty white. */
.site-footer.atelier-footer {
  --footer-progress: 0;
  --footer-light-x: 84%;
  --footer-light-y: 13%;
  padding-top: 43px;
  padding-bottom: 22px;
  color: #e4eee1;
  background: #183c34;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, .35fr);
  column-gap: 9vw;
  row-gap: 28px;
  position: relative;
  isolation: isolate;
}
.atelier-footer::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse at var(--footer-light-x) var(--footer-light-y), #7590852b, transparent 57%),
    linear-gradient(127deg, #254d3f00 21%, #658f751b 53%, #14392e00 53.3%);
}
.footer-invitation > span {
  font-family: var(--mono);
  display: block;
  font-size: 10px;
  letter-spacing: .03em;
  color: #b5c8b9;
  margin-bottom: 24px;
}
.footer-invitation > a {
  font-family: var(--serif);
  font-size: clamp(71px, 7.25vw, 120px);
  font-weight: 400;
  line-height: .87;
  letter-spacing: -.026em;
  display: inline-block;
  position: relative;
  padding-right: 1.12em;
  margin-bottom: 18px;
}
.footer-invitation em { color: #bed0ba; }
.footer-invitation i {
  font-family: var(--sans);
  font-size: .45em;
  font-weight: 300;
  font-style: normal;
  position: absolute;
  right: .12em;
  top: .6em;
  transition: transform .5s cubic-bezier(.2,.7,.2,1);
}
.footer-invitation > a:hover i { transform: translate(6px, -6px); }
.footer-invitation > a:hover em { color: #edf2df; }
.footer-links {
  align-self: end;
  display: flex;
  flex-direction: column;
  padding-bottom: 20px;
}
.footer-links a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 48px;
  border-top: 1px solid #d7e7d630;
  padding: 12px 0;
  font-size: 13px;
  line-height: 1.5;
}
.footer-links a > span[aria-hidden] { font-size: 21px; }
.footer-links a:hover { color: #fff; border-color: #d7e7d69c; }
.atelier-footer .footer-meta {
  grid-column: 1/-1;
  display: flex;
  align-items: end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 18px 28px;
  border-top: 1px solid #d7e7d630;
  padding: 23px 0 0;
  color: #b5c8b9;
  font-size: 11px;
  line-height: 1.7;
}
.atelier-footer .footer-meta > a { color: #e4eee1; font-size: 13px; }
.atelier-footer .footer-meta nav { display: flex; gap: 22px; width: auto; order: initial; }
.atelier-footer .footer-meta a:hover { color: #fff; }
.atelier-footer .footer-rule {
  width: 1px;
  height: 240px;
  background: linear-gradient(180deg, transparent, #c3d9c12b, transparent);
  position: absolute;
  pointer-events: none;
  left: 69%;
  top: 21px;
  transform: rotate(24deg);
}
.atelier-footer a:focus-visible { outline-color: #e4eee1; }
.on-dark-surface .site-header {
  color: #e4eee1;
  background: linear-gradient(180deg, #183c34eb, #183c3466 75%, transparent);
}
.on-dark-surface .site-header .wordmark-point,
.on-dark-surface .site-header .wordmark small { color: #e4eee1; }
.on-dark-surface .site-header a:focus-visible,
.on-dark-surface .site-header button:focus-visible { outline-color: #e4eee1; }

/* Mineral light belongs to the editorial surfaces, not only to the opening object. */
.portfolio {
  --surface-light-x: 75%;
  background:
    radial-gradient(ellipse at var(--surface-light-x) 9%, #fffefa 0%, transparent 52%),
    linear-gradient(128deg, #e4ece4 0%, #f2f2e7 43%, #e4ebe5 100%);
  position: relative;
  isolation: isolate;
}
.portfolio::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0; left: 28%; right: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(126deg, transparent 0 41%, #46675908 41.4% 58%, transparent 58.4%);
}
.portfolio-toolbar { border-color: #567b623e; }
.portfolio .card-caption h2 { color: #183c34; }
.portfolio .card-caption p { color: #385951; }
.portfolio .card-image { box-shadow: 0 17px 27px #284a3512; }
.portfolio .index-photo { box-shadow: 9px 15px 30px #284a3518; }
.contact-page {
  --surface-light-x: 70%;
  background:
    radial-gradient(ellipse at var(--surface-light-x) 2%, #fffaf0 0%, transparent 55%),
    linear-gradient(124deg, #e7e9d9 0%, #f1efe2 49%, #dde7db 100%);
  position: relative;
  isolation: isolate;
}
.contact-page::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(131deg, transparent 22%, #45634608 40%, transparent 40.3% 61%, #ffffff42 61.5% 70%, transparent 70.5%);
}
.contact-aside > .eyebrow { font-family: var(--mono); font-size: 11px; letter-spacing: .02em; }
.contact-aside > p { font-family: var(--serif); font-size: clamp(25px, 2.5vw, 39px); line-height: 1.2; }
.contact-page .form-field input,
.contact-page .form-field textarea { background: #fafaf228; border-color: #47675170; }
.contact-page .form-field input:focus,
.contact-page .form-field textarea:focus { background: #ffffff54; }
.contact-page .reference-preview { border-color: #47675150; }
.information-page {
  background:
    radial-gradient(ellipse at 78% 0%, #fcfbf2, transparent 65%),
    linear-gradient(125deg, #e1e9df, #f0f2e8 58%, #e5ece3);
}

@media (max-width: 1000px) and (min-width: 681px) {
  .atelier-copy { width: 39%; top: 41%; }
  .journey-ending .atelier-copy h2 { font-size: 8vw; }
  .journey-ending .atelier-copy p { font-size: 14px; max-width: 275px; }
  .atelier-copy .text-link { gap: 15px; font-size: 13px; }
  .atelier-register { left: 43%; gap: 16px; }
  .atelier-register strong { font-size: 28px; }
  .site-footer.atelier-footer { column-gap: 7vw; grid-template-columns: minmax(0, 1fr) 200px; }
  .footer-invitation > a { font-size: 9vw; }
}
@media (max-width: 680px) {
  .journey-ending.atelier-ending { height: 240svh; }
  .atelier-stage { min-height: 0; }
  .atelier-copy { left: var(--space); right: var(--space); top: 58%; bottom: auto; width: auto; translate: none; }
  .atelier-copy > .eyebrow { font-size: 10px; margin-bottom: 10px; }
  .journey-ending .atelier-copy h2 { font-size: clamp(36px, 11vw, 55px); line-height: .97; margin-bottom: 13px; }
  .journey-ending .atelier-copy h2 br { display: none; }
  .journey-ending .atelier-copy h2 em { display: inline-block; margin-left: .13em; }
  .journey-ending .atelier-copy p { font-size: 13px; line-height: 1.6; max-width: 350px; margin-bottom: 10px; }
  .atelier-copy-note { display: none; }
  .atelier-copy .text-link { font-size: 13px; min-height: 44px; gap: 24px; }
  .atelier-register { left: var(--space); right: var(--space); bottom: 16px; gap: 14px; }
  .atelier-register a { grid-template-columns: 1fr; gap: 6px; padding-top: 10px; min-height: 70px; }
  .atelier-register a > span:first-child { font-size: 9px; }
  .atelier-register strong { font-size: clamp(22px, 6.1vw, 32px); }
  .atelier-register a > span:last-child { grid-column: 1; font-size: 10px; }
  .atelier-coda { display: none; }
  .atelier-fallback { inset: 17% 5% 45% 5%; }
  .atelier-fallback > figure:nth-child(1) { left: 7%; top: -1%; width: 58%; height: 48%; }
  .atelier-fallback > figure:nth-child(2) { right: 1%; top: 3%; width: 31%; height: 76%; }
  .atelier-fallback > figure:nth-child(3) { left: 0; bottom: -2%; width: 58%; height: 48%; }
  .atelier-fallback > figure:nth-child(4) { left: 0; top: 4%; }
  .atelier-fallback > figure:nth-child(5) { right: 17%; top: 29%; }
  .atelier-fallback > figure:nth-child(6) { right: 15%; bottom: -4%; }
  .site-footer.atelier-footer {
    display: flex;
    flex-direction: column;
    gap: 27px;
    padding-top: 40px;
    padding-bottom: 23px;
  }
  .footer-invitation > span { margin-bottom: 25px; }
  .footer-invitation > a { font-size: clamp(67px, 17.3vw, 98px); padding-right: .65em; margin-bottom: 0; }
  .footer-invitation i { font-size: .37em; right: 0; }
  .footer-links { align-self: stretch; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; padding: 0; }
  .footer-links a { font-size: 12px; min-height: 45px; gap: 8px; }
  .footer-links a > span[aria-hidden] { font-size: 17px; }
  .atelier-footer .footer-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 17px 22px;
    align-items: start;
    padding-top: 22px;
    font-size: 10px;
  }
  .atelier-footer .footer-meta > a:first-child { grid-row: 1; grid-column: 1; }
  .atelier-footer .footer-meta > a:nth-child(3) { grid-row: 2; grid-column: 1/-1; }
  .atelier-footer .footer-meta > span:last-child { grid-row: 1; grid-column: 2; }
  .atelier-footer .footer-meta > span:nth-child(2) { grid-row: 3; grid-column: 1/-1; }
  .atelier-footer .footer-meta nav { grid-row: 2; grid-column: 1/-1; flex-wrap: wrap; gap: 17px; }
  .atelier-footer .footer-rule { height: 220px; left: 88%; top: 36px; }
  .portfolio .card-image { box-shadow: 0 12px 22px #284a3512; }
  .contact-aside > p { font-size: 31px; max-width: 320px; }
  .contact-page .form-submit { align-items: start; }
}
@media (max-width: 360px) {
  .journey-ending .atelier-copy h2 { font-size: 34px; }
  .journey-ending .atelier-copy p { font-size: 13px; max-width: 260px; }
  .atelier-register { gap: 10px; }
  .atelier-register strong { font-size: 22px; }
  .atelier-register a > span:last-child { font-size: 9px; }
  .footer-invitation > a { font-size: 59px; }
  .footer-links { gap: 12px; }
  .footer-links a { font-size: 11px; }
}
@media (max-width: 680px) and (max-height: 680px) {
  .atelier-copy { top: 56%; }
  .atelier-copy > .eyebrow { margin-bottom: 7px; }
  .journey-ending .atelier-copy h2 { margin-bottom: 10px; }
  .journey-ending .atelier-copy p { font-size: 12px; line-height: 1.55; margin-bottom: 7px; max-width: none; }
  .atelier-register { bottom: 12px; }
  .atelier-register a { gap: 4px; padding-top: 8px; min-height: 62px; }
}
@media (min-width: 681px) and (max-width: 1000px) and (max-aspect-ratio: 4/5) {
  .atelier-copy { left: var(--space); right: var(--space); top: 60%; width: auto; translate: none; }
  .atelier-copy > .eyebrow { margin-bottom: 14px; }
  .journey-ending .atelier-copy h2 { font-size: clamp(56px, 8vw, 82px); line-height: 1; margin-bottom: 20px; }
  .journey-ending .atelier-copy h2 br { display: none; }
  .journey-ending .atelier-copy h2 em { display: inline-block; margin-left: .12em; }
  .journey-ending .atelier-copy p { max-width: 480px; font-size: 15px; line-height: 1.8; margin-bottom: 12px; }
  .atelier-copy-note { display: none; }
  .atelier-register { left: var(--space); right: var(--space); bottom: 32px; }
  .atelier-coda { display: none; }
  .atelier-fallback { inset: 16% 8% 44% 8%; }
}
@media (min-width: 681px) and (max-height: 690px) {
  .atelier-stage { min-height: 570px; }
  .atelier-copy { top: 42%; }
  .atelier-copy > .eyebrow { margin-bottom: 21px; }
  .journey-ending .atelier-copy h2 { font-size: clamp(65px, 7vw, 97px); margin-bottom: 24px; }
  .journey-ending .atelier-copy p { font-size: 14px; line-height: 1.75; }
  .atelier-register { bottom: 25px; }
  .atelier-coda { bottom: 29px; }
}
@media (prefers-reduced-motion: reduce) {
  .journey-ending.atelier-ending { height: 125svh; }
  .atelier-copy { opacity: 1; transform: none; }
  .atelier-register { opacity: 1; transform: none; }
  .atelier-stage::before { opacity: 1; }
  .atelier-stage::after { opacity: .025; }
  .footer-invitation i,
  .atelier-register a { transition: none; }
  .footer-invitation > a:hover i { transform: none; }
}
