@layer reset {
/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Prevent font size inflation */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  scroll-behavior: smooth;
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
    margin: 0;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4,
button, input, label {
  line-height: 1.1;
}

/* Balance text wrapping on headings */
h1, h2,
h3, h4 {
  text-wrap: balance;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
  font-family: inherit;
  font-size: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 10rem;
}
}
@layer global {

:root {
    --ink: #000000;
    --surface: #ffffff;
    --border: #000000;
    --muted: oklch(0.2592 0.0466 178.55);

    --primary: oklch(0.2592 0.0466 178.55);
    --on-primary: oklch(0.9999 0.0001 0);
    --on-primary-muted: oklch(0.8592 0.0466 178.55);

    --box-shadow: 0 0.25rem 0.5rem oklch(0 0 0 / 0.2);

    /* @link https://utopia.fyi/type/calculator?c=360,20,1.25,1240,24,1.333,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */
    --step--2: clamp(0.8rem, 0.7819rem + 0.0803vw, 0.8442rem);
    --step--1: clamp(1rem, 0.9487rem + 0.2278vw, 1.1253rem);
    --step-0: clamp(1.25rem, 1.1477rem + 0.4545vw, 1.5rem);
    --step-1: clamp(1.5625rem, 1.3837rem + 0.7945vw, 1.9995rem);
    --step-2: clamp(1.9531rem, 1.6618rem + 1.2949vw, 2.6653rem);
    --step-3: clamp(2.4414rem, 1.9867rem + 2.0209vw, 3.5529rem);
    --step-4: clamp(3.0518rem, 2.3627rem + 3.0623vw, 4.736rem);
    --step-5: clamp(3.8147rem, 2.7926rem + 4.5425vw, 6.3131rem);

    /* @link https://utopia.fyi/space/calculator?c=360,20,1.25,1240,24,1.333,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */
    --space-3xs: clamp(0.3125rem, 0.2869rem + 0.1136vw, 0.375rem);
    --space-2xs: clamp(0.625rem, 0.5739rem + 0.2273vw, 0.75rem);
    --space-xs: clamp(0.9375rem, 0.8608rem + 0.3409vw, 1.125rem);
    --space-s: clamp(1.25rem, 1.1477rem + 0.4545vw, 1.5rem);
    --space-m: clamp(1.875rem, 1.7216rem + 0.6818vw, 2.25rem);
    --space-l: clamp(2.5rem, 2.2955rem + 0.9091vw, 3rem);
    --space-xl: clamp(3.75rem, 3.4432rem + 1.3636vw, 4.5rem);
    --space-2xl: clamp(5rem, 4.5909rem + 1.8182vw, 6rem);
    --space-3xl: clamp(7.5rem, 6.8864rem + 2.7273vw, 9rem);

    /* One-up pairs */
    --space-3xs-2xs: clamp(0.3125rem, 0.1335rem + 0.7955vw, 0.75rem);
    --space-2xs-xs: clamp(0.625rem, 0.4205rem + 0.9091vw, 1.125rem);
    --space-xs-s: clamp(0.9375rem, 0.7074rem + 1.0227vw, 1.5rem);
    --space-s-m: clamp(1.25rem, 0.8409rem + 1.8182vw, 2.25rem);
    --space-m-l: clamp(1.875rem, 1.4148rem + 2.0455vw, 3rem);
    --space-l-xl: clamp(2.5rem, 1.6818rem + 3.6364vw, 4.5rem);
    --space-xl-2xl: clamp(3.75rem, 2.8295rem + 4.0909vw, 6rem);
    --space-2xl-3xl: clamp(5rem, 3.3636rem + 7.2727vw, 9rem);

    /* Custom pairs */
    --space-s-l: clamp(1.25rem, 0.5341rem + 3.1818vw, 3rem);

    @media print {
        --step--2: 0.8rem;
        --step--1: 1rem;
        --step-0: 1.25rem;
        --step-1: 1.5625rem;
        --step-2: 1.9531rem;
        --step-3: 2.4414rem;
        --step-4: 3.0518rem;
        --step-5: 3.8147rem;

        --space-3xs: 0.3125rem;
        --space-2xs: 0.625rem;
        --space-xs: 0.9375rem;
        --space-s: 1.25rem;
        --space-m: 1.875rem;
        --space-l: 2.5rem;
        --space-xl: 3.75rem;
        --space-2xl: 5rem;
        --space-3xl: 7.5rem;

        --space-3xs-2xs: 0.3125rem;
        --space-2xs-xs: 0.625rem;
        --space-xs-s: 0.9375rem;
        --space-s-m: 1.25rem;
        --space-m-l: 1.875rem;
        --space-l-xl: 2.5rem;
        --space-xl-2xl: 3.75rem;
        --space-2xl-3xl: 5rem;
    }
}

body {
    font-family: var(--satoshi);
    font-size: var(--step-0);
    line-height: 1.6;
    font-weight: 400;
    background-color: var(--background);
    background-image: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%202000%201500'%3e%3crect%20fill='%23ffffff'%20width='2000'%20height='1500'/%3e%3cdefs%3e%3crect%20stroke='%23ffffff'%20stroke-width='0.6'%20width='1'%20height='1'%20id='s'/%3e%3cpattern%20id='a'%20width='3'%20height='3'%20patternUnits='userSpaceOnUse'%20patternTransform='rotate(35%201000%20750)%20scale(26.95)%20translate(-962.89%20-722.17)'%3e%3cuse%20fill='%23fcfcfc'%20href='%23s'%20y='2'/%3e%3cuse%20fill='%23fcfcfc'%20href='%23s'%20x='1'%20y='2'/%3e%3cuse%20fill='%23fafafa'%20href='%23s'%20x='2'%20y='2'/%3e%3cuse%20fill='%23fafafa'%20href='%23s'/%3e%3cuse%20fill='%23f7f7f7'%20href='%23s'%20x='2'/%3e%3cuse%20fill='%23f7f7f7'%20href='%23s'%20x='1'%20y='1'/%3e%3c/pattern%3e%3cpattern%20id='b'%20width='7'%20height='11'%20patternUnits='userSpaceOnUse'%20patternTransform='rotate(35%201000%20750)%20scale(26.95)%20translate(-962.89%20-722.17)'%3e%3cg%20fill='%23f5f5f5'%3e%3cuse%20href='%23s'/%3e%3cuse%20href='%23s'%20y='5'%20/%3e%3cuse%20href='%23s'%20x='1'%20y='10'/%3e%3cuse%20href='%23s'%20x='2'%20y='1'/%3e%3cuse%20href='%23s'%20x='2'%20y='4'/%3e%3cuse%20href='%23s'%20x='3'%20y='8'/%3e%3cuse%20href='%23s'%20x='4'%20y='3'/%3e%3cuse%20href='%23s'%20x='4'%20y='7'/%3e%3cuse%20href='%23s'%20x='5'%20y='2'/%3e%3cuse%20href='%23s'%20x='5'%20y='6'/%3e%3cuse%20href='%23s'%20x='6'%20y='9'/%3e%3c/g%3e%3c/pattern%3e%3cpattern%20id='h'%20width='5'%20height='13'%20patternUnits='userSpaceOnUse'%20patternTransform='rotate(35%201000%20750)%20scale(26.95)%20translate(-962.89%20-722.17)'%3e%3cg%20fill='%23f5f5f5'%3e%3cuse%20href='%23s'%20y='5'/%3e%3cuse%20href='%23s'%20y='8'/%3e%3cuse%20href='%23s'%20x='1'%20y='1'/%3e%3cuse%20href='%23s'%20x='1'%20y='9'/%3e%3cuse%20href='%23s'%20x='1'%20y='12'/%3e%3cuse%20href='%23s'%20x='2'/%3e%3cuse%20href='%23s'%20x='2'%20y='4'/%3e%3cuse%20href='%23s'%20x='3'%20y='2'/%3e%3cuse%20href='%23s'%20x='3'%20y='6'/%3e%3cuse%20href='%23s'%20x='3'%20y='11'/%3e%3cuse%20href='%23s'%20x='4'%20y='3'/%3e%3cuse%20href='%23s'%20x='4'%20y='7'/%3e%3cuse%20href='%23s'%20x='4'%20y='10'/%3e%3c/g%3e%3c/pattern%3e%3cpattern%20id='c'%20width='17'%20height='13'%20patternUnits='userSpaceOnUse'%20patternTransform='rotate(35%201000%20750)%20scale(26.95)%20translate(-962.89%20-722.17)'%3e%3cg%20fill='%23f2f2f2'%3e%3cuse%20href='%23s'%20y='11'/%3e%3cuse%20href='%23s'%20x='2'%20y='9'/%3e%3cuse%20href='%23s'%20x='5'%20y='12'/%3e%3cuse%20href='%23s'%20x='9'%20y='4'/%3e%3cuse%20href='%23s'%20x='12'%20y='1'/%3e%3cuse%20href='%23s'%20x='16'%20y='6'/%3e%3c/g%3e%3c/pattern%3e%3cpattern%20id='d'%20width='19'%20height='17'%20patternUnits='userSpaceOnUse'%20patternTransform='rotate(35%201000%20750)%20scale(26.95)%20translate(-962.89%20-722.17)'%3e%3cg%20fill='%23ffffff'%3e%3cuse%20href='%23s'%20y='9'/%3e%3cuse%20href='%23s'%20x='16'%20y='5'/%3e%3cuse%20href='%23s'%20x='14'%20y='2'/%3e%3cuse%20href='%23s'%20x='11'%20y='11'/%3e%3cuse%20href='%23s'%20x='6'%20y='14'/%3e%3c/g%3e%3cg%20fill='%23efefef'%3e%3cuse%20href='%23s'%20x='3'%20y='13'/%3e%3cuse%20href='%23s'%20x='9'%20y='7'/%3e%3cuse%20href='%23s'%20x='13'%20y='10'/%3e%3cuse%20href='%23s'%20x='15'%20y='4'/%3e%3cuse%20href='%23s'%20x='18'%20y='1'/%3e%3c/g%3e%3c/pattern%3e%3cpattern%20id='e'%20width='47'%20height='53'%20patternUnits='userSpaceOnUse'%20patternTransform='rotate(35%201000%20750)%20scale(26.95)%20translate(-962.89%20-722.17)'%3e%3cg%20fill='%23fefefe'%3e%3cuse%20href='%23s'%20x='2'%20y='5'/%3e%3cuse%20href='%23s'%20x='16'%20y='38'/%3e%3cuse%20href='%23s'%20x='46'%20y='42'/%3e%3cuse%20href='%23s'%20x='29'%20y='20'/%3e%3c/g%3e%3c/pattern%3e%3cpattern%20id='f'%20width='59'%20height='71'%20patternUnits='userSpaceOnUse'%20patternTransform='rotate(35%201000%20750)%20scale(26.95)%20translate(-962.89%20-722.17)'%3e%3cg%20fill='%23e9e9e9'%3e%3cuse%20href='%23s'%20x='33'%20y='13'/%3e%3cuse%20href='%23s'%20x='27'%20y='54'/%3e%3cuse%20href='%23s'%20x='55'%20y='55'/%3e%3c/g%3e%3c/pattern%3e%3cpattern%20id='g'%20width='139'%20height='97'%20patternUnits='userSpaceOnUse'%20patternTransform='rotate(35%201000%20750)%20scale(26.95)%20translate(-962.89%20-722.17)'%3e%3cg%20fill='%23f5f5f5'%3e%3cuse%20href='%23s'%20x='11'%20y='8'/%3e%3cuse%20href='%23s'%20x='51'%20y='13'/%3e%3cuse%20href='%23s'%20x='17'%20y='73'/%3e%3cuse%20href='%23s'%20x='99'%20y='57'/%3e%3c/g%3e%3c/pattern%3e%3c/defs%3e%3crect%20fill='url(%23a)'%20width='100%25'%20height='100%25'/%3e%3crect%20fill='url(%23b)'%20width='100%25'%20height='100%25'/%3e%3crect%20fill='url(%23h)'%20width='100%25'%20height='100%25'/%3e%3crect%20fill='url(%23c)'%20width='100%25'%20height='100%25'/%3e%3crect%20fill='url(%23d)'%20width='100%25'%20height='100%25'/%3e%3crect%20fill='url(%23e)'%20width='100%25'%20height='100%25'/%3e%3crect%20fill='url(%23f)'%20width='100%25'%20height='100%25'/%3e%3crect%20fill='url(%23g)'%20width='100%25'%20height='100%25'/%3e%3c/svg%3e");
    color: var(--ink);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--alex-brush);
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.01em;
    max-width: 20ch;
}

h1 {
    font-size: var(--step-5);
}

h2 {
    font-size: var(--step-4);
}

h3 {
    font-size: var(--step-3);
}

h4 {
    font-size: var(--step-2);
}

h5, h6 {
    font-size: var(--step-1);
}

p {
    max-width: 60ch;
}

a {
    color: var(--primary);
    text-decoration-color: var(--primary);
    padding-inline: 0.1em;
    transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out, transform 0.2s ease-in-out;

    &:where(&:hover, &:target-current) {
        color: var(--on-primary);
        background-color: var(--primary);
    }
}

small {
    font-size: var(--step--1);
    color: var(--muted);
}

section {
    padding-block: var(--space-xl-2xl);
}

iframe {
    width: 100%;
}

img {
    border: 4px solid var(--primary);
}

dt {
    font-weight: 600;
}

ul, ol {
    ::marker {
        color: var(--primary);
    }
}
}
@layer composition {


.flow > * + * {
    margin-block-start: var(--flow-space, 2em);


    &.tight > * {
        --flow-space: 1em;
    }
}


.container {
    max-width: var(--max-container-size, 60rem);
    margin-inline: auto;
    padding-inline: var(--space-m);
}

[data-container-size="larger"] {
    --max-container-size: 80rem;

    &[data-layout="halves"] {
        --grid-min-item-size: 25rem;
    }
}

.cluster {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-s);
  align-items: center;
}

.grid {
    display: grid;
    grid-template-columns: repeat(
          auto-fit,
          minmax(min(100%, var(--grid-min-item-size, 15rem)), 1fr)
        );
    gap: var(--grid-gap, var(--space-m));
}

[data-layout="halves"] {
    --grid-min-item-size: 20rem;

    @media print {
        --grid-min-item-size: 15rem;
    }
}

[data-layout="full"] {
    --grid-min-item-size: 1fr;
}
}
@layer block {

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2xs);
    min-height: 44px;
    padding: var(--space-2xs) var(--space-xs);
    background-color: transparent;
    color: var(--ink);
    border: 1px solid transparent;
    font: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, border-color 0.2s ease-in-out;

    &[hidden] {
        display: none;
    }

    &:focus-visible {
        outline: 2px solid var(--primary);
        outline-offset: 4px;
    }

    &.primary {
        background-color: var(--primary);
        color: var(--on-primary);
        border-color: var(--on-primary);
        box-shadow: var(--box-shadow);

        &:hover {
            background-color: var(--surface);
            color: var(--primary);
            border-color: var(--primary);
        }
    }

    &.rounded {
        border-radius: 999px;
        padding: var(--space-xs);
    }

    @media (prefers-reduced-motion: reduce) {
        transition: none;
    }
}

.image-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: var(--space-s);

    & > img {
        @media (min-width: 768px) {
            max-height: 500px;

            &:nth-child(2n) {
                grid-column: span 2;
                grid-row: span 2;
            }
        }
    }
}
}
@layer utility {

.background {
    background-color: var(--background);
    color: var(--color);

    @media not print {
        &.primary {
            --background: var(--primary);
            --color: var(--on-primary);
            --muted: var(--on-primary-muted);

            img {
                border-color: var(--on-primary);
            }

            mark {
                background: var(--on-primary);
                color: var(--primary);
            }

            a {
                color: var(--on-primary);
                text-decoration-color: var(--on-primary);
            }
        }
    }
}

.font-title {
    font-size: var(--step-5);
}

@media (scripting: enabled) and (prefers-reduced-motion: no-preference) {
    .fade-in {
        --sibling: 0;
        --delta: 200ms;
        opacity: 0;
        filter: blur(12px);
        transform: translateY(16px) scale(0.98);

        transition: opacity 800ms calc(var(--sibling) * var(--delta)) ease-out,
            filter 800ms calc(var(--sibling) * var(--delta)) ease-out,
            transform 800ms calc(var(--sibling) * var(--delta)) cubic-bezier(0.16, 1, 0.3, 1);

        will-change: opacity, filter, transform;

        &.visible {
            opacity: 1;
            filter: blur(0px);
            transform: translateY(0) scale(1);
        }
    }
}

.tilted:not(.print) {
    display: inline-block;
    transform: rotate(7deg);

    &.subtle {
        transform: rotate(2deg);
    }
}

@media print {
    .titled.print {
        display: inline-block;
        transform: rotate(7deg);

        &.subtle {
            transform: rotate(2deg);
        }
    }
}

.tilted-on-hover {
    transition: transform 0.2s ease-in-out;

    &:hover {
        transform: rotate(2deg);
    }
}

.highlighted:not(.print) {
  background: var(--primary);
  color: var(--on-primary);
  padding-inline: 0.1em;
}

@media print {
  .highlighted.print {
    background: var(--primary);
    color: var(--on-primary);
    padding-inline: 0.1em;
  }
}

.no-list-style {
    list-style: none;
}
}
@layer astro.images {
:where([data-astro-image]) {
  height: auto;
}
:where([data-astro-image="full-width"]) {
  width: 100%;
}
:where([data-astro-image="constrained"]) {
  max-width: 100%;
}

[data-astro-image-fit="fill"] {
  object-fit: fill;
}

[data-astro-image-fit="contain"] {
  object-fit: contain;
}

[data-astro-image-fit="cover"] {
  object-fit: cover;
}

[data-astro-image-fit="scale-down"] {
  object-fit: scale-down;
}


[data-astro-image-pos="top"] {
  object-position: top;
}

[data-astro-image-pos="bottom"] {
  object-position: bottom;
}

[data-astro-image-pos="left"] {
  object-position: left;
}

[data-astro-image-pos="right"] {
  object-position: right;
}

[data-astro-image-pos="center"] {
  object-position: center;
}

[data-astro-image-pos="top-left"] {
  object-position: top left;
}

[data-astro-image-pos="top-right"] {
  object-position: top right;
}

[data-astro-image-pos="top-center"] {
  object-position: top center;
}

[data-astro-image-pos="bottom-left"] {
  object-position: bottom left;
}

[data-astro-image-pos="bottom-right"] {
  object-position: bottom right;
}

[data-astro-image-pos="bottom-center"] {
  object-position: bottom center;
}

[data-astro-image-pos="left-top"] {
  object-position: left top;
}

[data-astro-image-pos="left-bottom"] {
  object-position: left bottom;
}

[data-astro-image-pos="left-center"] {
  object-position: left center;
}

[data-astro-image-pos="right-top"] {
  object-position: right top;
}

[data-astro-image-pos="right-bottom"] {
  object-position: right bottom;
}

[data-astro-image-pos="right-center"] {
  object-position: right center;
}

[data-astro-image-pos="center-top"] {
  object-position: center top;
}

[data-astro-image-pos="center-bottom"] {
  object-position: center bottom;
}

[data-astro-image-pos="center-left"] {
  object-position: center left;
}

[data-astro-image-pos="center-right"] {
  object-position: center right;
}
}.main-header[data-astro-cid-nen7h5rs] {
  position: sticky;
  top: var(--space-s);
  z-index: 100000;

  & a {
    text-decoration: none;
    color: var(--ink);
    background-color: #0000;

    &:hover {
      & .carte {
        transform: rotate(-15deg);
      }
    }

    & .carte {
      transition: transform .2s ease-in-out;
    }
  }

  & nav {
    --max-container-size: min(90%, 60rem);
    padding-block: var(--space-s);
    display: grid;
    place-items: center;
    box-shadow: var(--box-shadow);
    outline: 1px solid var(--border);
    background: oklch(from var(--surface) l c h / .85);
    backdrop-filter: blur(.5rem);
    animation: 1ms linear both block;

    @supports (animation-timeline: scroll()) {
      box-shadow: none;
      background: none;
      outline: 1px solid #0000;
      backdrop-filter: none;
      animation-range: entry 0 exit 150px;
      animation-timeline: scroll();
    }

    & .brand {
      font-family: var(--alex-brush);
      font-size: var(--step-2);
      fill: var(--ink);
    }

    @media (width >= 768px) {
      display: flex;
      justify-content: space-between;
    }

    & ul {
      display: none;
      list-style: none;
      margin: 0;
      padding: 0;
    }
  }

  @media print {
    display: none;
  }
}

@keyframes block {
  to {
    box-shadow: var(--box-shadow);
    margin-block: var(--space-s);
    outline: 1px solid var(--border);
    background: oklch(from var(--surface) l c h / .85);
    backdrop-filter: blur(.5rem);
  }
}
.main-footer[data-astro-cid-jo6i4kqk] {
  padding-block: var(--space-s);

  & .main-footer-links {
    display: grid;
    gap: var(--space-s);

    @media (width >= 768px) {
      grid-template-columns: 1fr 2fr;

      & h2 {
        grid-column: 1 / 3;
      }

      & nav[aria-labelledby] {
        grid-column: 1 / 2;
      }

      & .illustration {
        grid-column: 2 / 3;
        grid-row: 2 / 4;
        place-self: end;
      }
    }

    & .illustration {
      height: auto;
      width: 100%;
    }
  }

  @media print {
    display: none;
  }
}
