@font-face { font-display: swap; font-family: 'Noto IKEA'; font-style: italic; font-weight: 400; src: url(noto-ikea-400i.latin-ext.5f8f91ea.woff2) format("woff2"); unicode-range:u + 0100-024f, u + 0259, u + 1e??, u + 2020, u + 20a0-20ab, u + 20ad-20cf, u + 2113, u + 2c60-2c7f, u + a720-a7ff } @font-face { font-display: swap; font-family: 'Noto IKEA'; font-style: italic; font-weight: 400; src: url(noto-ikea-400i.latin.10395910.woff2) format("woff2"); unicode-range:u + 00??, u + 0131, u + 0152-0153, u + 02bb-02bc, u + 02c6, u + 02da, u + 02dc, u + 2000-206f, u + 2074, u + 20ac, u + 2122, u + 2191, u + 2193, u + 2212, u + 2215, u + feff, u + fffd } @font-face { font-display: swap; font-family: 'Noto IKEA'; font-style: italic; font-weight: 700; src: url(noto-ikea-700i.latin-ext.3637155a.woff2) format("woff2"); unicode-range:u + 0100-024f, u + 0259, u + 1e??, u + 2020, u + 20a0-20ab, u + 20ad-20cf, u + 2113, u + 2c60-2c7f, u + a720-a7ff } @font-face { font-display: swap; font-family: 'Noto IKEA'; font-style: italic; font-weight: 700; src: url(noto-ikea-700i.latin.29eb18bb.woff2) format("woff2"); unicode-range:u + 00??, u + 0131, u + 0152-0153, u + 02bb-02bc, u + 02c6, u + 02da, u + 02dc, u + 2000-206f, u + 2074, u + 20ac, u + 2122, u + 2191, u + 2193, u + 2212, u + 2215, u + feff, u + fffd } @font-face { font-display: swap; font-family: 'Noto IKEA'; font-style: normal; font-weight: 400; src: url(noto-ikea-400.latin-ext.edd421f4.woff2) format("woff2"); unicode-range:u + 0100-024f, u + 0259, u + 1e??, u + 2020, u + 20a0-20ab, u + 20ad-20cf, u + 2113, u + 2c60-2c7f, u + a720-a7ff } @font-face { font-display: swap; font-family: 'Noto IKEA'; font-style: normal; font-weight: 400; src: url(noto-ikea-400.latin.647e877d.woff2) format("woff2"); unicode-range:u + 00??, u + 0131, u + 0152-0153, u + 02bb-02bc, u + 02c6, u + 02da, u + 02dc, u + 2000-206f, u + 2074, u + 20ac, u + 2122, u + 2191, u + 2193, u + 2212, u + 2215, u + feff, u + fffd } @font-face { font-display: swap; font-family: 'Noto IKEA'; font-style: normal; font-weight: 700; src: url(noto-ikea-700.latin-ext.97f0d455.woff2) format("woff2"); unicode-range:u + 0100-024f, u + 0259, u + 1e??, u + 2020, u + 20a0-20ab, u + 20ad-20cf, u + 2113, u + 2c60-2c7f, u + a720-a7ff } @font-face { font-display: swap; font-family: 'Noto IKEA'; font-style: normal; font-weight: 700; src: url(noto-ikea-700.latin.d7277c39.woff2) format("woff2"); unicode-range:u + 00??, u + 0131, u + 0152-0153, u + 02bb-02bc, u + 02c6, u + 02da, u + 02dc, u + 2000-206f, u + 2074, u + 20ac, u + 2122, u + 2191, u + 2193, u + 2212, u + 2215, u + feff, u + fffd } :root { --clr-white: #fff; --clr-black: #000; --clr-green: #3FB83E; --clr-blue: #4297FF; --clr-sand: #F1EBDD; --clr-sand-light: #F7F3EB; --ff-ikea: "Noto IKEA", "Noto Sans", system-ui, sans-serif; --fs-s: 0.75rem; --fs-base: 1rem; --fs-lg: 1.125rem; --fs-xl: 2rem; --fs-2xl: 3rem; --fs-3xl: 4rem; --td-s: 400 0.75rem/1.3 var(--ff-ikea); --td-base: 400 1rem/1.4 var(--ff-ikea); --td-lg: 400 1.125rem/1.4 var(--ff-ikea); --td-xl: 700 2rem/1.2 var(--ff-ikea); --td-2xl: 700 3rem/1.2 var(--ff-ikea); --td-3xl: 700 4rem/1.2 var(--ff-ikea); font: 16px/1.4 var(--ff-ikea); } .turbo-progress-bar { height: 3px; background-color: #0058a3; } body { margin: 0; display: flex; flex-direction: column; gap: 0; min-height: 100vh; min-height: 100svh; -webkit-font-smoothing: antialiased; touch-action: manipulation; background-color: var(--clr-white); } button { cursor: pointer; } ul[class] { margin: 0; padding: 0; list-style: none; } header { background-color: var(--clr-white); position: fixed; inset: 1rem 1rem auto 1rem; padding: 0.875rem 1rem; display: flex; justify-content: space-between; align-items: center; box-shadow: 0px 2px 2px 0px #0000000A; z-index: 100; > a { flex-grow: 1; max-width: 12.6875rem; } } .language-button { display: flex; justify-content: center; align-items: center; aspect-ratio: 1; background-color: var(--clr-sand); border: none; border-radius: 50%; width: 2.25rem; cursor: pointer; svg { display: none; &:nth-child(1) { display: block; } } &[aria-expanded="true"] { svg:nth-child(1) { display: none; } svg:nth-child(2) { display: block; } } } #language-menu { position: absolute; inset: 0 0 auto 0; z-index: 90; background-color: var(--clr-sand); padding: calc(1rem + 4rem + 2rem) 1rem 1rem 1rem; & h2 { font: var(--td-xl); font-weight: 400; margin: 0 0 1rem 0; } & ul { font: var(--td-base); border-top: 1px solid var(--clr-black); } & li { border-bottom: 1px solid var(--clr-black); padding: 0.75rem 0; position: relative; min-height: 3.5rem; } & a { text-decoration: none; color: var(--clr-black); display: flex; align-items: center; min-height: 2rem; &.current { font-weight: 700; } &::after { content: ""; position: absolute; right: 0; width: 2rem; aspect-ratio: 1; border-radius: 50%; background-color: var(--clr-green); background-image: url("ico-arrow-right.svg"); background-repeat: no-repeat; background-position: 50% 50%; } } } main { display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; & article { flex: 0 0 auto; background-color: var(--clr-bg); flex-shrink: 0; text-align: center; padding: 1.5rem 1.5rem 1rem 1.5rem; & p { max-width: 32ch; margin: 0 auto 1.5rem auto; } & .cta + * { margin-top: 0.75rem; } } & h1, h2 { font: var(--td-xl); font-weight: 400; margin: 0 auto 0.5rem auto; } } .start { --clr-bg: var(--clr-white); --clr-action: var(--clr-green); } .facts { --clr-bg: var(--clr-green); --clr-action: var(--clr-white); } .stage { --clr-bg: var(--clr-sand-light); --clr-action: var(--clr-white); & .hero-container article { color: var(--clr-white); text-align: left; } } .hero-container, .carousel { flex: 1 1 0; min-height: 0; } .hero-container { display: grid; grid-template: 1fr / 1fr; & img, video { grid-area: 1 / 1; width: 100%; height: 100%; object-fit: cover; min-width: 0; min-height: 0; } & article { grid-area: 1 / 1; place-self: start start; z-index: 1; background-color: transparent; } &:has(video) { color: var(--clr-white); & h2 { text-align: left; margin-top: 1em; } } & svg { grid-area: 1 / 1; place-self: end end; fill: var(--clr-bg, var(--clr-green)); } & .hero-link { grid-area: 1 / 1; z-index: 2; } } .cta { display: flex; align-items: center; justify-content: center; background-color: var(--clr-action, var(--clr-sand-light)); background-image: url("ico-arrow-right.svg"); background-repeat: no-repeat; background-position: 1rem 50%; max-width: 17.5rem; border-radius: 100vw; height: 3rem; margin: 0 auto; font-weight: 700; color: var(--clr-black); text-decoration: none; } .play-time { font: var(--td-s); display: inline-flex; gap: 0.4em; align-items: center; } .carousel { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; > li { scroll-snap-align: center; display: flex; flex-direction: column; --clr-bg: var(--clr-green); } } .scroll-marker-group { display: flex; gap: 0.5rem; justify-content: center; background-color: var(--clr-bg); padding: 0 0 1rem 0; & button { appearance: none; border: none; width: 0.75rem; aspect-ratio: 1; border-radius: 50%; background-color: var(--clr-white); transition: background-color 0.1s ease; &.current { background-color: var(--clr-black); } } } .stage-header-container { background-color: var(--clr-bg); padding: 1rem; display: flex; flex-direction: column; gap: 1rem; } .stage-progress { list-style: none; display: flex; gap: 0.5rem; justify-content: stretch; margin: 0; padding: 0; & li { flex-grow: 1; height: 0.25rem; border-radius: 100vw; background-color: var(--clr-white); &.done { background-color: var(--clr-green); } } } .stage-header { display: flex; gap: 0.5rem; align-items: center; & h1 { font: var(--td-base); margin: 0; } } .stage-icon { width: 2.5rem; aspect-ratio: 1; background-color: var(--clr-green); border-radius: 50%; display: flex; align-items: center; justify-content: center; } .stage-progress { font: var(--td-s); text-transform: uppercase; font-weight: 700; }