diff --git a/client/i18n/locales/english/intro.json b/client/i18n/locales/english/intro.json
index 3ee9ff3373..40cba07769 100644
--- a/client/i18n/locales/english/intro.json
+++ b/client/i18n/locales/english/intro.json
@@ -102,6 +102,7 @@
"title": "Learn Typography by Building a Nutrition Label",
"intro": ["", ""]
},
+ "learn-css-transforms-by-building-a-penguin": { "title": "Learn CSS Transforms by Building a Penguin", "intro": ["", ""] },
"learn-css-animation-by-building-a-ferris-wheel": { "title": "Learn CSS Animation by Building a Ferris Wheel", "intro": ["", ""] },
"learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet": { "title": "Learn More About CSS Pseudo Selectors By Building A Balance Sheet", "intro": ["", ""] }
}
diff --git a/client/src/pages/learn/responsive-web-design/learn-css-transforms-by-building-a-penguin/index.md b/client/src/pages/learn/responsive-web-design/learn-css-transforms-by-building-a-penguin/index.md
new file mode 100644
index 0000000000..c45aed513d
--- /dev/null
+++ b/client/src/pages/learn/responsive-web-design/learn-css-transforms-by-building-a-penguin/index.md
@@ -0,0 +1,10 @@
+---
+title: Introduction to the Learn CSS Transforms by Building a Penguin
+block: learn-css-transforms-by-building-a-penguin
+superBlock: Responsive Web Design
+isBeta: true
+---
+
+## Introduction to the Learn CSS Transforms by Building a Penguin
+
+This is a test for the new project-based curriculum.
diff --git a/client/utils/help-category-map.json b/client/utils/help-category-map.json
index dbc2a43ba0..b6c4e6eed3 100644
--- a/client/utils/help-category-map.json
+++ b/client/utils/help-category-map.json
@@ -80,9 +80,10 @@
"number-guessing-game": "Relational Databases",
"learn-accessibility-by-building-a-quiz": "HTML-CSS",
"learn-html-forms-by-building-a-registration-form": "HTML-CSS",
+ "learn-css-animation-by-building-a-ferris-wheel": "HTML-CSS",
"learn-css-flexbox-by-building-a-photo-gallery": "HTML-CSS",
"learn-css-grid-by-building-a-magazine": "HTML-CSS",
+ "learn-css-transforms-by-building-a-penguin": "HTML-CSS",
"learn-typography-by-building-a-nutrition-label": "HTML-CSS",
- "learn-css-animation-by-building-a-ferris-wheel": "HTML-CSS",
"learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet": "HTML-CSS"
}
diff --git a/curriculum/challenges/_meta/learn-css-transforms-by-building-a-penguin/meta.json b/curriculum/challenges/_meta/learn-css-transforms-by-building-a-penguin/meta.json
new file mode 100644
index 0000000000..9243b878d7
--- /dev/null
+++ b/curriculum/challenges/_meta/learn-css-transforms-by-building-a-penguin/meta.json
@@ -0,0 +1,431 @@
+{
+ "name": "Learn CSS Transforms by Building a Penguin",
+ "isUpcomingChange": true,
+ "usesMultifileEditor": true,
+ "dashedName": "learn-css-transforms-by-building-a-penguin",
+ "order": 47,
+ "time": "5 hours",
+ "template": "",
+ "required": [],
+ "superBlock": "responsive-web-design",
+ "superOrder": 1,
+ "isBeta": true,
+ "challengeOrder": [
+ [
+ "619665c9abd72906f3ad30f9",
+ "Step 1"
+ ],
+ [
+ "61967e74a8e3690ab6292daa",
+ "Step 2"
+ ],
+ [
+ "61968df2acd5550bf1616c34",
+ "Step 3"
+ ],
+ [
+ "61a8fe15a6a31306e60d1e89",
+ "Step 4"
+ ],
+ [
+ "61968e9243a4090cc805531c",
+ "Step 5"
+ ],
+ [
+ "61968f8877c6720d6d61aaf5",
+ "Step 6"
+ ],
+ [
+ "619691693bc14b0e528f5a20",
+ "Step 7"
+ ],
+ [
+ "6196928658b6010f28c39484",
+ "Step 8"
+ ],
+ [
+ "6197f667297bb30a552ce017",
+ "Step 9"
+ ],
+ [
+ "619692ff79f5770fc6d8c0b4",
+ "Step 10"
+ ],
+ [
+ "6196990f966e8f10a40094f6",
+ "Step 11"
+ ],
+ [
+ "619699c10a0f6e11591d73c4",
+ "Step 12"
+ ],
+ [
+ "61969aa6acef5b12200f672e",
+ "Step 13"
+ ],
+ [
+ "61969c487ced6f12db8fef94",
+ "Step 14"
+ ],
+ [
+ "61969d66cfcdba137d021558",
+ "Step 15"
+ ],
+ [
+ "61969e7451455614217e901b",
+ "Step 16"
+ ],
+ [
+ "6196adc17f77a714d51485f2",
+ "Step 17"
+ ],
+ [
+ "6196aead7ac7bf1584b17a7f",
+ "Step 18"
+ ],
+ [
+ "6196ce0415498d2463989e84",
+ "Step 19"
+ ],
+ [
+ "6196cee94c6da1253809dff9",
+ "Step 20"
+ ],
+ [
+ "6196d00a5d7292262bc02f4c",
+ "Step 21"
+ ],
+ [
+ "6196d0cda039d026f7f78d1e",
+ "Step 22"
+ ],
+ [
+ "6196d1ac33c68d27dcda5796",
+ "Step 23"
+ ],
+ [
+ "6196d213d99f16287bff22ae",
+ "Step 24"
+ ],
+ [
+ "6196d2c0f22ca0293107c048",
+ "Step 25"
+ ],
+ [
+ "6196d32d1340d829f0f6f57d",
+ "Step 26"
+ ],
+ [
+ "6196d41d40bf9b2aaea5d520",
+ "Step 27"
+ ],
+ [
+ "6197cff995d03905b0cca8ad",
+ "Step 28"
+ ],
+ [
+ "6197f40a16afea068c7e60c8",
+ "Step 29"
+ ],
+ [
+ "61993b72e874e709b8dfd666",
+ "Step 30"
+ ],
+ [
+ "61993cf26a8e0f0a553db223",
+ "Step 31"
+ ],
+ [
+ "61993dbb35adf30b10d49e38",
+ "Step 32"
+ ],
+ [
+ "61993e9adc9e9a0bb4d28fff",
+ "Step 33"
+ ],
+ [
+ "6199409834ccaf0d10736596",
+ "Step 34"
+ ],
+ [
+ "6199429802b7c10dc79ff871",
+ "Step 35"
+ ],
+ [
+ "619943285a41720e6370d985",
+ "Step 36"
+ ],
+ [
+ "619943876b706d0f35c01dbc",
+ "Step 37"
+ ],
+ [
+ "6199442866286d0ff421a4fc",
+ "Step 38"
+ ],
+ [
+ "619bcf239fc15905ecd66fce",
+ "Step 39"
+ ],
+ [
+ "619be73b3c806006ccc00bb0",
+ "Step 40"
+ ],
+ [
+ "619be7af7b0bf60770f5d2a4",
+ "Step 41"
+ ],
+ [
+ "619be80062551a080e32c821",
+ "Step 42"
+ ],
+ [
+ "619be8ce4ea49008c5bfbc30",
+ "Step 43"
+ ],
+ [
+ "619be946958c6009844f1dee",
+ "Step 44"
+ ],
+ [
+ "619c155df0063a0a3fec0e32",
+ "Step 45"
+ ],
+ [
+ "619c16debd0c270b01c5ce38",
+ "Step 46"
+ ],
+ [
+ "619cfdf2e63ddf05feab86ad",
+ "Step 47"
+ ],
+ [
+ "619d019488f98c06acbbb71a",
+ "Step 48"
+ ],
+ [
+ "619d022dc8400c0763829a17",
+ "Step 49"
+ ],
+ [
+ "619d02c7bc95bf0827a5d296",
+ "Step 50"
+ ],
+ [
+ "619d033915012509031f309a",
+ "Step 51"
+ ],
+ [
+ "619d03dadadb6509a16f4f5f",
+ "Step 52"
+ ],
+ [
+ "619d0503e03a790a4179d463",
+ "Step 53"
+ ],
+ [
+ "619d05c54dabca0b10058235",
+ "Step 54"
+ ],
+ [
+ "619d0882f54bf40bdc4671ed",
+ "Step 55"
+ ],
+ [
+ "619d090cd8d6db0c93dc5087",
+ "Step 56"
+ ],
+ [
+ "619d0b51ca42ed0d74582186",
+ "Step 57"
+ ],
+ [
+ "619d0bc9cb05360e1bf549c3",
+ "Step 58"
+ ],
+ [
+ "619d0c1594c38c0ebae75878",
+ "Step 59"
+ ],
+ [
+ "619d0d18ca99870f884a7bff",
+ "Step 60"
+ ],
+ [
+ "619d0daf214542102739b0da",
+ "Step 61"
+ ],
+ [
+ "619d0e56f9ca9710fcb974e3",
+ "Step 62"
+ ],
+ [
+ "619d0eec0ac40611b41e2ccc",
+ "Step 63"
+ ],
+ [
+ "619d0fc9825c271253df28d4",
+ "Step 64"
+ ],
+ [
+ "619d102d786c3d13124c37c6",
+ "Step 65"
+ ],
+ [
+ "619d107edf7ddf13cc77106a",
+ "Step 66"
+ ],
+ [
+ "619d10cc98145f14820399c5",
+ "Step 67"
+ ],
+ [
+ "619d115e2adcd71538e82ebb",
+ "Step 68"
+ ],
+ [
+ "619d11e6d5ef9515d2a16033",
+ "Step 69"
+ ],
+ [
+ "619d129a417d0716a94de913",
+ "Step 70"
+ ],
+ [
+ "619d1340361095175f4b5115",
+ "Step 71"
+ ],
+ [
+ "619d15797b580c1828b05426",
+ "Step 72"
+ ],
+ [
+ "619d15d955d9d418c4487bbc",
+ "Step 73"
+ ],
+ [
+ "619d1629a8adc61960ca8b40",
+ "Step 74"
+ ],
+ [
+ "619d1c5fc9f8941a400955da",
+ "Step 75"
+ ],
+ [
+ "619d1dab9ff3421ae1976991",
+ "Step 76"
+ ],
+ [
+ "619d1deb8b04811b8839ffe4",
+ "Step 77"
+ ],
+ [
+ "619d1e7a8e81a61c5a819dc4",
+ "Step 78"
+ ],
+ [
+ "619d1ed33c9a071cf657a0d6",
+ "Step 79"
+ ],
+ [
+ "619d1fb5d244c31db8a7fdb7",
+ "Step 80"
+ ],
+ [
+ "619d204bd73ae51e743b8e94",
+ "Step 81"
+ ],
+ [
+ "619d20b12996101f430920fb",
+ "Step 82"
+ ],
+ [
+ "619d21fe6a3f9b2016be9d9d",
+ "Step 83"
+ ],
+ [
+ "619d229b0e542520cd91c685",
+ "Step 84"
+ ],
+ [
+ "619d23089e787e216a7043d6",
+ "Step 85"
+ ],
+ [
+ "619d237a107c10221ed743fa",
+ "Step 86"
+ ],
+ [
+ "619d26b12e651022d80cd017",
+ "Step 87"
+ ],
+ [
+ "619d2712853306238f41828e",
+ "Step 88"
+ ],
+ [
+ "619d2b7a84e78b246f2d17a2",
+ "Step 89"
+ ],
+ [
+ "619d2bd9c1d43c2526e96f1f",
+ "Step 90"
+ ],
+ [
+ "619d2d4e80400325ff89664a",
+ "Step 91"
+ ],
+ [
+ "619d2ebc81ba81271460850d",
+ "Step 92"
+ ],
+ [
+ "619d2f0e9440bc27caee1cec",
+ "Step 93"
+ ],
+ [
+ "619d2fd3ff4f772882e3d998",
+ "Step 94"
+ ],
+ [
+ "619d30350883802921bfcccc",
+ "Step 95"
+ ],
+ [
+ "619d324f5915c929f36ae91d",
+ "Step 96"
+ ],
+ [
+ "619d32c7fa21f32aaa91d499",
+ "Step 97"
+ ],
+ [
+ "619d333b738e3c2b5d58b095",
+ "Step 98"
+ ],
+ [
+ "619d337765b9f02c10e93722",
+ "Step 99"
+ ],
+ [
+ "619d33c51140292cc5a21742",
+ "Step 100"
+ ],
+ [
+ "619d3482f505452d861d0f62",
+ "Step 101"
+ ],
+ [
+ "619d3561a951bf2e41a24f10",
+ "Step 102"
+ ],
+ [
+ "619d36103839c82efa95dd34",
+ "Step 103"
+ ],
+ [
+ "619d3711d04d623000013e9e",
+ "Step 104"
+ ]
+ ]
+}
\ No newline at end of file
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-001.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-001.md
new file mode 100644
index 0000000000..f95c4903e2
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-001.md
@@ -0,0 +1,125 @@
+---
+id: 619665c9abd72906f3ad30f9
+title: Step 1
+challengeType: 0
+dashedName: step-1
+---
+
+# --description--
+
+You will be building a happy Flappy Penguin, and further exploring CSS transforms and animations in the process.
+
+Begin with your basic HTML boilerplate. Include the `DOCTYPE` declaration, `html` element, the appropriate `meta` tags, a `head`, `body`, and `title` element. Also, link your stylesheet to the page.
+
+# --hints--
+
+Your code should have a `` declaration.
+
+```js
+assert(code.match(//i));
+```
+
+Your code should have an `html` element.
+
+```js
+assert.equal(document.querySelectorAll('html')?.length, 1);
+```
+
+Your code should have a `head` element within the `html` element.
+
+```js
+assert.equal(document.querySelectorAll('head')?.length, 1);
+```
+
+Your code should have a `body` element within the `html` element.
+
+```js
+assert.equal(document.querySelectorAll('body')?.length, 1);
+```
+
+Your `head` element should come before your `body` element.
+
+```js
+assert.equal(document.querySelector('body')?.previousElementSibling?.tagName, 'HEAD');
+```
+
+You should have two `meta` elements.
+
+```js
+const meta = document.querySelectorAll('meta');
+assert.equal(meta?.length, 2);
+```
+
+One `meta` element should have a `name` set to `viewport`, and `content` set to `width=device-width, initial-scale=1.0`.
+
+```js
+const meta = [...document.querySelectorAll('meta')];
+const target = meta?.find(m => m?.getAttribute('name') === 'viewport' && m?.getAttribute('content') === 'width=device-width, initial-scale=1.0' && !m?.getAttribute('charset'));
+assert.exists(target);
+```
+
+The other `meta` element should have the `charset` attribute set to `UTF-8`.
+
+```js
+const meta = [...document.querySelectorAll('meta')];
+const target = meta?.find(m => !m?.getAttribute('name') && !m?.getAttribute('content') && m?.getAttribute('charset')?.toLowerCase() === 'utf-8');
+assert.exists(target);
+```
+
+Your code should have a `title` element.
+
+```js
+const title = document.querySelector('title');
+assert.exists(title);
+```
+
+Your `title` should have some text.
+
+```js
+const title = document.querySelector('title');
+assert.isAtLeast(title?.textContent?.length, 1);
+```
+
+Your code should have a `link` element.
+
+```js
+assert(/[\w\W\s]*[\w\W\s]*<\/head>/i))
+```
+
+Your `link` element should have a `rel` attribute with the value `stylesheet`.
+
+```js
+assert.match(code, /
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+```
+
+```css
+--fcc-editable-region--
+
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-003.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-003.md
new file mode 100644
index 0000000000..07178fce55
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-003.md
@@ -0,0 +1,53 @@
+---
+id: 61968df2acd5550bf1616c34
+title: Step 3
+challengeType: 0
+dashedName: step-3
+---
+
+# --description--
+
+Normalise your page's sizing, by removing the `body` element's `margin` and `padding`.
+
+# --hints--
+
+You should give `body` a `margin` of `0`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('body')?.margin, '0px');
+```
+
+You should give `body` a `padding` of `0`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('body')?.padding, '0px');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+```
+
+```css
+--fcc-editable-region--
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+
+}
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-004.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-004.md
new file mode 100644
index 0000000000..a82a5089c0
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-004.md
@@ -0,0 +1,55 @@
+---
+id: 61a8fe15a6a31306e60d1e89
+title: Step 4
+challengeType: 0
+dashedName: step-4
+---
+
+# --description--
+
+Normalise your page, by setting the `width` to `100%`, and `height` to `100vh`.
+
+# --hints--
+
+You should give `body` a `width` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('body')?.width, '100%');
+```
+
+You should give `body` a `height` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('body')?.height, '100vh');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+```
+
+```css
+--fcc-editable-region--
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+
+}
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-005.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-005.md
new file mode 100644
index 0000000000..11cb6bae3d
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-005.md
@@ -0,0 +1,51 @@
+---
+id: 61968e9243a4090cc805531c
+title: Step 5
+challengeType: 0
+dashedName: step-5
+---
+
+# --description--
+
+Remove both the horizontal and vertical scrollbars, and prevent programmatic scrolling, using only one property.
+
+# --hints--
+
+You should give `body` an `overflow` of `clip`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('body')?.overflow, 'clip');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+```
+
+```css
+--fcc-editable-region--
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+
+}
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-006.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-006.md
new file mode 100644
index 0000000000..88c94cf764
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-006.md
@@ -0,0 +1,64 @@
+---
+id: 61968f8877c6720d6d61aaf5
+title: Step 6
+challengeType: 0
+dashedName: step-6
+---
+
+# --description--
+
+Within the `body`, add a `div` with a `class` of `ground`.
+
+# --hints--
+
+You should add a new `div`.
+
+```js
+assert.exists(document.querySelector('div'));
+```
+
+You should give the `div` a `class` of `ground`.
+
+```js
+assert.include(document.querySelector('div')?.className, 'ground');
+```
+
+You should place the `div` within the `body`.
+
+```js
+assert.exists(document.querySelector('body > div.ground'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+--fcc-editable-region--
+
+
+
+--fcc-editable-region--
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-007.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-007.md
new file mode 100644
index 0000000000..f0dc78ba0f
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-007.md
@@ -0,0 +1,66 @@
+---
+id: 619691693bc14b0e528f5a20
+title: Step 7
+challengeType: 0
+dashedName: step-7
+---
+
+# --description--
+
+Target the `.ground` element, and set its `width` to take up the full width of the viewport. Then, set the `height` to `400px`.
+
+# --hints--
+
+You should use the `.ground` selector.
+
+```js
+assert.match(code, /\.ground\s*\{/);
+```
+
+You should give the `.ground` element a `width` of `100vw`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.ground')?.width, '100vw');
+```
+
+You should give the `.ground` element a `height` of `400px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.ground')?.height, '400px');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-008.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-008.md
new file mode 100644
index 0000000000..2ac23d64b1
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-008.md
@@ -0,0 +1,58 @@
+---
+id: 6196928658b6010f28c39484
+title: Step 8
+challengeType: 0
+dashedName: step-8
+---
+
+# --description--
+
+Give the `.ground` element a `background` with a linear gradient angled 90 degrees clockwise, starting at `rgb(88, 175, 236)` and ending at `rgb(182, 255, 255)`.
+
+# --hints--
+
+You should give `.ground` a `background` of `linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255))`.
+
+```js
+assert.include(['linear-gradient(90deg,rgb(88,175,236),rgb(182,255,255))', 'rgba(0,0,0,0)linear-gradient(45deg,rgb(118,201,255),rgb(247,255,222))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.ground')?.getPropVal('background', true));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+--fcc-editable-region--
+.ground {
+ width: 100vw;
+ height: 400px;
+
+}
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-009.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-009.md
new file mode 100644
index 0000000000..83aa13bb7c
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-009.md
@@ -0,0 +1,65 @@
+---
+id: 6197f667297bb30a552ce017
+title: Step 9
+challengeType: 0
+dashedName: step-9
+---
+
+# --description--
+
+As the `.ground` element will be third in the stacking context of the page layout, set its `z-index` to `3`, and `position` to `absolute`.
+
+# --hints--
+
+You should give `.ground` a `z-index` of `3`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.ground')?.zIndex, '3');
+```
+
+You should give `.ground` a `position` of `absolute`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.ground')?.position, 'absolute');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+--fcc-editable-region--
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+
+}
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-010.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-010.md
new file mode 100644
index 0000000000..e87317e07a
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-010.md
@@ -0,0 +1,73 @@
+---
+id: 619692ff79f5770fc6d8c0b4
+title: Step 10
+challengeType: 0
+dashedName: step-10
+---
+
+# --description--
+
+Above the `.ground` element, add a `div` with a `class` of `penguin`. This `div` will contain Flappy Penguin.
+
+# --hints--
+
+You should add a new `div` within the `body`.
+
+```js
+assert.equal(document.querySelectorAll('body > div')?.length, 2);
+```
+
+You should give the `div` a `class` of `penguin`.
+
+```js
+assert.include(document.querySelector('body > div:not(.ground)')?.className, 'penguin');
+```
+
+You should place `div.penguin` before `div.ground`.
+
+```js
+assert.strictEqual(document.querySelector('.ground')?.previousElementSibling, document.querySelector('.penguin'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+--fcc-editable-region--
+
+
+
+
+--fcc-editable-region--
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-011.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-011.md
new file mode 100644
index 0000000000..35de4159b5
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-011.md
@@ -0,0 +1,75 @@
+---
+id: 6196990f966e8f10a40094f6
+title: Step 11
+challengeType: 0
+dashedName: step-11
+---
+
+# --description--
+
+Target the `.penguin` element, and set its `width` and `height` to `300px`.
+
+# --hints--
+
+You should use the `.penguin` selector.
+
+```js
+assert.match(code, /\.penguin\s*\{/);
+```
+
+You should give `.penguin` a `width` of `300px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin')?.width, '300px');
+```
+
+You should give `.penguin` a `height` of `300px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin')?.height, '300px');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-012.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-012.md
new file mode 100644
index 0000000000..f90de1fcf8
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-012.md
@@ -0,0 +1,75 @@
+---
+id: 619699c10a0f6e11591d73c4
+title: Step 12
+challengeType: 0
+dashedName: step-12
+---
+
+# --description--
+
+Use the `margin` property to horizontally center the `.penguin` element, and set the `margin-top` to `75px`.
+
+# --hints--
+
+You should give `.penguin` a `margin` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin')?.marginRight, 'auto');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin')?.marginLeft, 'auto');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin')?.marginBottom, 'auto');
+```
+
+You should give `.penguin` a `margin-top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin')?.marginTop, '75px');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+--fcc-editable-region--
+.penguin {
+ width: 300px;
+ height: 300px;
+
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-013.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-013.md
new file mode 100644
index 0000000000..332d22d540
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-013.md
@@ -0,0 +1,83 @@
+---
+id: 61969aa6acef5b12200f672e
+title: Step 13
+challengeType: 0
+dashedName: step-13
+---
+
+# --description--
+
+To create some scenery in the background, you will add two mountains.
+
+Above the `.penguin` element, add a `div` with a `class` of `left-mountain`.
+
+# --hints--
+
+You should add a new `div` within `body`. Expected to see `--fcc-expected--` `div` elements, but found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('body > div')?.length, 3);
+```
+
+You should give the `div` a `class` of `left-mountain`.
+
+```js
+assert.include(document.querySelector('body > div:not(.ground, .penguin)')?.className, 'left-mountain');
+```
+
+You should place `.left-mountain` before `.penguin`.
+
+```js
+assert.strictEqual(document.querySelector('.penguin')?.previousElementSibling, document.querySelector('.left-mountain'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+--fcc-editable-region--
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-014.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-014.md
new file mode 100644
index 0000000000..52718531c5
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-014.md
@@ -0,0 +1,89 @@
+---
+id: 61969c487ced6f12db8fef94
+title: Step 14
+challengeType: 0
+dashedName: step-14
+---
+
+# --description--
+
+Target the `.left-mountain` element, and set its `width` and `height` to `300px`. Then, set the `background` to a linear gradient starting at `rgb(203, 241, 228)` and ending at `rgb(80, 183, 255)`.
+
+# --hints--
+
+You should use the `.left-mountain` selector.
+
+```js
+assert.match(code, /\.left-mountain\s*\{/);
+```
+
+You should give `.left-mountain` a `width` of `300px`. Expected `--fcc-actual--` to be `--fcc-expected--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.left-mountain')?.width, '300px');
+```
+
+You should give `.left-mountain` a `height` of `300px`. Expected `--fcc-actual--` to be `--fcc-expected--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.left-mountain')?.height, '300px');
+```
+
+You should give `.left-mountain` a `background` of `linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255))`.
+
+```js
+assert.include(['linear-gradient(rgb(203,241,228),rgb(80,183,255))', 'rgba(0,0,0,0)linear-gradient(45deg,rgb(118,201,255),rgb(247,255,222))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.left-mountain')?.getPropVal('background', true));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-015.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-015.md
new file mode 100644
index 0000000000..b0831823d0
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-015.md
@@ -0,0 +1,76 @@
+---
+id: 61969d66cfcdba137d021558
+title: Step 15
+challengeType: 0
+dashedName: step-15
+---
+
+# --description--
+
+To prevent the mountain from pushing the `.ground` element, adjust its `position` to prevent it from taking up space in the page layout.
+
+# --hints--
+
+You should give `.left-mountain` a `position` of `absolute`. Found `--fcc-actual--` instead of `--fcc-expected--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.left-mountain')?.position, 'absolute');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+--fcc-editable-region--
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+
+}
+--fcc-editable-region--
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-016.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-016.md
new file mode 100644
index 0000000000..908a8eecf9
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-016.md
@@ -0,0 +1,91 @@
+---
+id: 61969e7451455614217e901b
+title: Step 16
+challengeType: 0
+dashedName: step-16
+---
+
+# --description--
+
+To make the mountain look more like a mountain, you can use the `skew` transform function, which takes two arguments. The first being an angle to shear the x-axis by, and the second being an angle to shear the y-axis by.
+
+Use the `transform` property to skew the mountain by `0deg` in the x-axis and `44deg` in the y-axis.
+
+# --hints--
+
+You should give `.left-mountain` a `transform` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.left-mountain')?.transform);
+```
+
+You should use the `skew` function on `transform`.
+
+```js
+assert.include(new __helpers.CSSHelp(document).getStyle('.left-mountain')?.transform, 'skew');
+```
+
+You should give `.left-mountain` a `transform` of `skew(0deg, 44deg)`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.left-mountain')?.getPropVal('transform', true), 'skew(0deg,44deg)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+--fcc-editable-region--
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+
+}
+--fcc-editable-region--
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-017.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-017.md
new file mode 100644
index 0000000000..d46fe205b4
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-017.md
@@ -0,0 +1,90 @@
+---
+id: 6196adc17f77a714d51485f2
+title: Step 17
+challengeType: 0
+dashedName: step-17
+---
+
+# --description--
+
+Set the stack level of the mountain element such that it remains directly behind the `.ground` element.
+
+# --hints--
+
+You should use the `z-index` property to change the stack level.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.left-mountain')?.zIndex);
+```
+
+You should set the `z-index` property to `2`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.left-mountain')?.zIndex, '2');
+```
+
+You should not change the `z-index` of the `.ground` element.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.ground')?.zIndex, '3');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+--fcc-editable-region--
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+
+}
+--fcc-editable-region--
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-018.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-018.md
new file mode 100644
index 0000000000..4d0adcb367
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-018.md
@@ -0,0 +1,86 @@
+---
+id: 6196aead7ac7bf1584b17a7f
+title: Step 18
+challengeType: 0
+dashedName: step-18
+---
+
+# --description--
+
+To overlap the mountain and `.ground` elements better, give the mountain a `margin-top` of `100px`, and the `.ground` element a `margin-top` of `-58px`.
+
+# --hints--
+
+You should give `.left-mountain` a `margin-top` of `100px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.left-mountain')?.marginTop, '100px');
+```
+
+You should give `.ground` a `margin-top` of `-58px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.ground')?.marginTop, '-58px');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+--fcc-editable-region--
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+
+}
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-019.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-019.md
new file mode 100644
index 0000000000..17db688a4c
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-019.md
@@ -0,0 +1,92 @@
+---
+id: 6196ce0415498d2463989e84
+title: Step 19
+challengeType: 0
+dashedName: step-19
+---
+
+# --description--
+
+To give the effect of a mountain range, add another mountain, by creating a new `div` immediately after `.left-mountain`, and give the new `div` the `class` of `back-mountain`.
+
+# --hints--
+
+You should add a new `div` within `body`.
+
+```js
+assert.equal(document.querySelectorAll('body > div')?.length, 4);
+```
+
+You should give the `div` a `class` of `back-mountain`.
+
+```js
+assert.include(document.querySelector('div:not(.left-mountain, .ground, .penguin)')?.className, 'back-mountain');
+```
+
+You should place `.back-mountain` after `.left-mountain`.
+
+```js
+assert.strictEqual(document.querySelector('.left-mountain')?.nextElementSibling, document.querySelector('.back-mountain'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+
+--fcc-editable-region--
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-020.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-020.md
new file mode 100644
index 0000000000..9e6a00fbdb
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-020.md
@@ -0,0 +1,100 @@
+---
+id: 6196cee94c6da1253809dff9
+title: Step 20
+challengeType: 0
+dashedName: step-20
+---
+
+# --description--
+
+Target the `.back-mountain` element, and set its `width` and `height` to `300px`. Then, set the `background` to a linear gradient starting at `rgb(203, 241, 228)` and ending at `rgb(47, 170, 255)`.
+
+# --hints--
+
+You should use the `.back-mountain` selector.
+
+```js
+assert.match(code, /\.back-mountain\s*\{/);
+```
+
+You should give `.back-mountain` a `width` of `300px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.width, '300px');
+```
+
+You should give `.back-mountain` a `height` of `300px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.height, '300px');
+```
+
+You should give `.back-mountain` a `background` of `linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255))`.
+
+```js
+assert.include(['linear-gradient(rgb(203,241,228),rgb(47,170,255))', 'rgba(0,0,0,0)linear-gradient(rgb(203,241,228),rgb(47,170,255))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.back-mountain')?.getPropVal('background', true));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-021.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-021.md
new file mode 100644
index 0000000000..03857339e2
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-021.md
@@ -0,0 +1,87 @@
+---
+id: 6196d00a5d7292262bc02f4c
+title: Step 21
+challengeType: 0
+dashedName: step-21
+---
+
+# --description--
+
+Set the `position` property of the `.back-mountain` to prevent it from taking up space in the page layout.
+
+# --hints--
+
+You should give `.back-mountain` a `position` of `absolute`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.position, 'absolute');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+--fcc-editable-region--
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+
+}
+--fcc-editable-region--
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-022.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-022.md
new file mode 100644
index 0000000000..d01d30c612
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-022.md
@@ -0,0 +1,100 @@
+---
+id: 6196d0cda039d026f7f78d1e
+title: Step 22
+challengeType: 0
+dashedName: step-22
+---
+
+# --description--
+
+Change the stack level of the `.back-mountain` element such that it is directly behind the `.left-mountain` element.
+
+# --hints--
+
+You should use the `z-index` property to change the stack level.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.zIndex);
+```
+
+You should set the `z-index` property to `1`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.zIndex, '1');
+```
+
+You should not change the `z-index` of the `.left-mountain` element.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.left-mountain')?.zIndex, '2');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+--fcc-editable-region--
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+
+}
+--fcc-editable-region--
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-023.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-023.md
new file mode 100644
index 0000000000..72f404f993
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-023.md
@@ -0,0 +1,119 @@
+---
+id: 6196d1ac33c68d27dcda5796
+title: Step 23
+challengeType: 0
+dashedName: step-23
+---
+
+# --description--
+
+Rotate the `.back-mountain` element by `45deg` clockwise. Then, give it a `left` property of `110px`, and a `top` property of `225px`.
+
+# --hints--
+
+You should use the `transform` property to rotate the element.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform);
+```
+
+You should give `.back-mountain` a `transform` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.transform, 'rotate(45deg)');
+```
+
+You should give `.back-mountain` a `left` property.
+
+```js
+assert.isNotEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.left);
+```
+
+You should give `.back-mountain` a `left` property of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.left, '110px');
+```
+
+You should give `.back-mountain` a `top` property.
+
+```js
+assert.isNotEmpty(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.top);
+```
+
+You should give `.back-mountain` a `top` property of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.back-mountain')?.top, '225px');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+--fcc-editable-region--
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+
+}
+--fcc-editable-region--
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-024.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-024.md
new file mode 100644
index 0000000000..659c089c7b
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-024.md
@@ -0,0 +1,104 @@
+---
+id: 6196d213d99f16287bff22ae
+title: Step 24
+challengeType: 0
+dashedName: step-24
+---
+
+# --description--
+
+To finish the background, add a sun, by creating a new `div` element immediately after the `.back-mountain` element, and give it the class of `sun`.
+
+# --hints--
+
+You should add a new `div` element to `body`. Expected `--fcc-expected--` `div` elements, but found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('body > div')?.length, 5);
+```
+
+You should give the new `div` element a `class` of `sun`.
+
+```js
+assert.include(document.querySelector('div:not(.back-mountain, .left-mountain, .penguin, .ground)')?.className, 'sun');
+```
+
+You should place the new `div` element immediately after the `.back-mountain` element.
+
+```js
+assert.strictEqual(document.querySelector('div.back-mountain')?.nextElementSibling, document.querySelector('div.sun'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-025.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-025.md
new file mode 100644
index 0000000000..22b0a77f65
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-025.md
@@ -0,0 +1,112 @@
+---
+id: 6196d2c0f22ca0293107c048
+title: Step 25
+challengeType: 0
+dashedName: step-25
+---
+
+# --description--
+
+Give the `.sun` element a `width` and `height` of `200px`, and a `background-color` of `yellow`.
+
+# --hints--
+
+You should use the `.sun` selector.
+
+```js
+assert.match(code, /\.sun\s*\{/);
+```
+
+You should give `.sun` a `width` of `200px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sun')?.width, '200px');
+```
+
+You should give `.sun` a `height` of `200px`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sun')?.height, '200px');
+```
+
+You should give `.sun` a `background-color` of `yellow`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sun')?.backgroundColor, 'yellow');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-026.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-026.md
new file mode 100644
index 0000000000..bacca014ce
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-026.md
@@ -0,0 +1,105 @@
+---
+id: 6196d32d1340d829f0f6f57d
+title: Step 26
+challengeType: 0
+dashedName: step-26
+---
+
+# --description--
+
+Set the `position` property of the sun to prevent it from taking up space in the page layout, and set the `border-radius` such that the sun's shape is a circle.
+
+# --hints--
+
+You should give `.sun` a `position` of `absolute`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sun')?.position, 'absolute');
+```
+
+You should give `.sun` a `border-radius` of `50%`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sun')?.borderRadius, '50%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+--fcc-editable-region--
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+
+}
+--fcc-editable-region--
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-027.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-027.md
new file mode 100644
index 0000000000..0b04dc2fff
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-027.md
@@ -0,0 +1,107 @@
+---
+id: 6196d41d40bf9b2aaea5d520
+title: Step 27
+challengeType: 0
+dashedName: step-27
+---
+
+# --description--
+
+Position the sun in the top right corner of the screen such that `75px` of its top and right edges are off screen.
+
+# --hints--
+
+You should give `.sun` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sun')?.top, '-75px');
+```
+
+You should give `.sun` a `right` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.sun')?.right, '-75px');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+--fcc-editable-region--
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+
+}
+--fcc-editable-region--
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-028.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-028.md
new file mode 100644
index 0000000000..c832a95fde
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-028.md
@@ -0,0 +1,118 @@
+---
+id: 6197cff995d03905b0cca8ad
+title: Step 28
+challengeType: 0
+dashedName: step-28
+---
+
+# --description--
+
+Your penguin will consist of two main sections: the head, and the body.
+
+Within `.penguin`, add two new `div` elements. The first with a `class` of `penguin-head`, and the second with a `class` of `penguin-body`.
+
+# --hints--
+
+You should add two new `div` elements to `.penguin`. Expected `--fcc-expected--` `.penguin > div` elements, but found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin > div')?.length, 2);
+```
+
+You should give the first `div` a `class` of `penguin-head`.
+
+```js
+assert.include(document.querySelector('.penguin > div:nth-of-type(1)')?.className, 'penguin-head');
+```
+
+You should give the second `div` a `class` of `penguin-body`.
+
+```js
+assert.include(document.querySelector('.penguin > div:nth-of-type(2)')?.className, 'penguin-body');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+
+
+--fcc-editable-region--
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-029.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-029.md
new file mode 100644
index 0000000000..0a08966c51
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-029.md
@@ -0,0 +1,125 @@
+---
+id: 6197f40a16afea068c7e60c8
+title: Step 29
+challengeType: 0
+dashedName: step-29
+---
+
+# --description--
+
+Change the stack level of the `.penguin` element such that it appears in front of the `.ground` element, and give it a `position` of `relative`.
+
+# --hints--
+
+You should use the `z-index` property to change the stack level.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.penguin')?.zIndex);
+```
+
+You should give the `.penguin` element a `z-index` of `4`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin')?.zIndex, '4');
+```
+
+You should give `.penguin` a `position` property.
+
+```js
+assert.isNotEmpty(new __helpers.CSSHelp(document).getStyle('.penguin')?.position);
+```
+
+You should give `.penguin` a `position` of `relative`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin')?.position, 'relative');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+--fcc-editable-region--
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-030.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-030.md
new file mode 100644
index 0000000000..087bd7f64c
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-030.md
@@ -0,0 +1,128 @@
+---
+id: 61993b72e874e709b8dfd666
+title: Step 30
+challengeType: 0
+dashedName: step-30
+---
+
+# --description--
+
+Target the `.penguin-head` element, and give it a `width` half of its parent's, and a `height` of `45%`. Then, set the `background` to a linear gradient at `45deg` starting at `gray`, and ending at `rgb(239, 240, 228)`.
+
+# --hints--
+
+You should use the `.penguin-head` selector.
+
+```js
+assert.match(code, /\.penguin-head\s*\{/);
+```
+
+You should give `.penguin-head` a `width` of `50%`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.width, '50%');
+```
+
+You should give `.penguin-head` a `height` of `45%`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.height, '45%');
+```
+
+You should give `.penguin-head` a `background` of `linear-gradient(45deg, gray, rgb(239, 240, 228))`.
+
+```js
+assert.include(['linear-gradient(45deg,gray,rgb(239,240,228))', 'rgba(0,0,0,0)linear-gradient(45deg,gray,rgb(239,240,228))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.penguin-head')?.getPropVal('background', true));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-031.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-031.md
new file mode 100644
index 0000000000..35ed7efef9
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-031.md
@@ -0,0 +1,122 @@
+---
+id: 61993cf26a8e0f0a553db223
+title: Step 31
+challengeType: 0
+dashedName: step-31
+---
+
+# --description--
+
+_Most_ penguins do not have a square head.
+
+Give the penguin a slightly oval head by setting the radius of the top corners to `70%` and the radius of the bottom corners to `65%`.
+
+# --hints--
+
+You should give `.penguin-head` a `border-radius` of `70% 70% 65% 65%`.
+
+```js
+// Maybe check for individual border-radius properties?
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.borderRadius, '70% 70% 65% 65%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+--fcc-editable-region--
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-032.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-032.md
new file mode 100644
index 0000000000..05967309b8
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-032.md
@@ -0,0 +1,139 @@
+---
+id: 61993dbb35adf30b10d49e38
+title: Step 32
+challengeType: 0
+dashedName: step-32
+---
+
+# --description--
+
+Target the `.penguin-body` element, and give it a `width` of `53%`, and a `height` of `45%`. Then, set the `background` to a linear gradient at `45deg`, `rgb(134, 133, 133)` from `0%`, `rgb(234, 231, 231)` from `25%`, and `white` from `67%`.
+
+# --hints--
+
+You should use the `.penguin-body` selector.
+
+```js
+assert.match(code, /\.penguin-body\s*\{/);
+```
+
+You should give `.penguin-body` a `width` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body')?.width, '53%');
+```
+
+You should give `.penguin-body` a `height` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body')?.height, '45%');
+```
+
+You should give `.penguin-body` a `background` of `linear-gradient(45deg, rgb(134, 133, 133) 0%, rgb(234, 231, 231) 25%, white 67%)`.
+
+```js
+assert.include(['linear-gradient(45deg,rgb(134,133,133)0%,rgb(234,231,231)25%,white67%)', 'rgba(0,0,0,0)linear-gradient(45deg,rgb(134,133,133)0%,rgb(234,231,231)25%,white67%)repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.penguin-body')?.getPropVal('background', true));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-033.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-033.md
new file mode 100644
index 0000000000..08b6dac389
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-033.md
@@ -0,0 +1,133 @@
+---
+id: 61993e9adc9e9a0bb4d28fff
+title: Step 33
+challengeType: 0
+dashedName: step-33
+---
+
+# --description--
+
+Another interesting fact about penguins is that they do not have square bodies.
+
+Use the `border-radius` property with a value of `80% 80% 100% 100%`, to give the penguin a slightly rounded body.
+
+# --hints--
+
+You should give `.penguin-body` a `border-radius` of `80% 80% 100% 100%`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body')?.borderRadius, '80% 80% 100% 100%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+}
+
+--fcc-editable-region--
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-034.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-034.md
new file mode 100644
index 0000000000..4ee352a97d
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-034.md
@@ -0,0 +1,139 @@
+---
+id: 6199409834ccaf0d10736596
+title: Step 34
+challengeType: 0
+dashedName: step-34
+---
+
+# --description--
+
+Target all descendent elements of the `.penguin` element, and give them a `position` of `absolute`.
+
+# --hints--
+
+You should use the `.penguin *` selector.
+
+```js
+assert.match(code, /\.penguin\s*\*\s*\{/);
+```
+
+You should give `.penguin *` a `position` of `absolute`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin *')?.position, 'absolute');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-035.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-035.md
new file mode 100644
index 0000000000..9bf45b5b6b
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-035.md
@@ -0,0 +1,154 @@
+---
+id: 6199429802b7c10dc79ff871
+title: Step 35
+challengeType: 0
+dashedName: step-35
+---
+
+# --description--
+
+Position the `.penguin-head` element `10%` from the top, and `25%` from the left of its parent.
+
+# --hints--
+
+You should give `.penguin-head` a `top` property.
+
+```js
+assert.isNotEmpty(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.top);
+```
+
+You should give `.penguin-head` a `top` property of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.top, '10%');
+```
+
+You should give `.penguin-head` a `left` property.
+
+```js
+assert.isNotEmpty(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.left);
+```
+
+You should give `.penguin-head` a `left` property of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.left, '25%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+--fcc-editable-region--
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+
+}
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-036.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-036.md
new file mode 100644
index 0000000000..42e0e75f3e
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-036.md
@@ -0,0 +1,156 @@
+---
+id: 619943285a41720e6370d985
+title: Step 36
+challengeType: 0
+dashedName: step-36
+---
+
+# --description--
+
+Position the `.penguin-body` element `40%` from the top, and `23.5%` from the left of its parent.
+
+# --hints--
+
+You should give `.penguin-body` a `top` property.
+
+```js
+assert.isNotEmpty(new __helpers.CSSHelp(document).getStyle('.penguin-body')?.top);
+```
+
+You should give `.penguin-body` a `top` property of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body')?.top, '40%');
+```
+
+You should give `.penguin-body` a `left` property.
+
+```js
+assert.isNotEmpty(new __helpers.CSSHelp(document).getStyle('.penguin-body')?.left);
+```
+
+You should give `.penguin-body` a `left` property of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body')?.left, '23.5%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+}
+
+--fcc-editable-region--
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-037.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-037.md
new file mode 100644
index 0000000000..0a22c7385f
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-037.md
@@ -0,0 +1,146 @@
+---
+id: 619943876b706d0f35c01dbc
+title: Step 37
+challengeType: 0
+dashedName: step-37
+---
+
+# --description--
+
+Change the stack level of the `.penguin-head` element such that it appears in front of the `.penguin-body` element.
+
+# --hints--
+
+You should use the `z-index` property to change the stack level.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.zIndex);
+```
+
+You should give the `.penguin-head` element a `z-index` of `1`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.zIndex, '1');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+--fcc-editable-region--
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+
+}
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-038.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-038.md
new file mode 100644
index 0000000000..5e3d14a36c
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-038.md
@@ -0,0 +1,148 @@
+---
+id: 6199442866286d0ff421a4fc
+title: Step 38
+challengeType: 0
+dashedName: step-38
+---
+
+# --description--
+
+To give the penguin body a crest, create a pseudo-element that is the first child of the `.penguin-body` element. Set the `content` property of the pseudo-element to an empty string.
+
+# --hints--
+
+You should use the `.penguin-body::before` selector.
+
+```js
+assert.match(code, /\.penguin-body::before\s*\{/);
+```
+
+You should give `.penguin-body::before` a `content` of `""`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.content, '""');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-039.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-039.md
new file mode 100644
index 0000000000..e9b3efa5fe
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-039.md
@@ -0,0 +1,145 @@
+---
+id: 619bcf239fc15905ecd66fce
+title: Step 39
+challengeType: 0
+dashedName: step-39
+---
+
+# --description--
+
+Position the pseudo-element relative to its closest positioned ancestor.
+
+# --hints--
+
+You should give `.penguin-body::before` a `position` of `absolute`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.position, 'absolute');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+--fcc-editable-region--
+.penguin-body::before {
+ content: "";
+
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-040.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-040.md
new file mode 100644
index 0000000000..c20cbd18f6
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-040.md
@@ -0,0 +1,158 @@
+---
+id: 619be73b3c806006ccc00bb0
+title: Step 40
+challengeType: 0
+dashedName: step-40
+---
+
+# --description--
+
+Give the pseudo-element a `width` half that of its parent, a `height` of `40%`, and a `background-color` of `gray`.
+
+# --hints--
+
+You should give `.penguin-body::before` a `width` of `50%`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.width, '50%');
+```
+
+You should give `.penguin-body::before` a `height` of `40%`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.height, '40%');
+```
+
+You should give `.penguin-body::before` a `background-color` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.backgroundColor, 'gray');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+--fcc-editable-region--
+.penguin-body::before {
+ content: "";
+ position: absolute;
+
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-041.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-041.md
new file mode 100644
index 0000000000..7649a16fce
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-041.md
@@ -0,0 +1,155 @@
+---
+id: 619be7af7b0bf60770f5d2a4
+title: Step 41
+challengeType: 0
+dashedName: step-41
+---
+
+# --description--
+
+Position the pseudo-element `10%` from the top and `25%` from the left of its parent.
+
+# --hints--
+
+You should give `.penguin-body::before` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.top, '10%');
+```
+
+You should give `.penguin-body::before` a `left` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.left, '25%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+--fcc-editable-region--
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-042.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-042.md
new file mode 100644
index 0000000000..f83d871279
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-042.md
@@ -0,0 +1,160 @@
+---
+id: 619be80062551a080e32c821
+title: Step 42
+challengeType: 0
+dashedName: step-42
+---
+
+# --description--
+
+Round off the crest, by giving the pseudo-element bottom corners a radius of `100%`, leaving the top corners at `0%`.
+
+# --hints--
+
+You should use the `border-radius` property to round off the crest.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.borderRadius);
+```
+
+You should give `.penguin-body::before` a `border-radius` of `0% 0% 100% 100%`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.borderBottomLeftRadius, '100%');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.borderBottomRightRadius, '100%');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.borderTopLeftRadius, '0%');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.borderTopRightRadius, '0%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+--fcc-editable-region--
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-043.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-043.md
new file mode 100644
index 0000000000..4ec7e2c0c6
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-043.md
@@ -0,0 +1,152 @@
+---
+id: 619be8ce4ea49008c5bfbc30
+title: Step 43
+challengeType: 0
+dashedName: step-43
+---
+
+# --description--
+
+Increase the psuedo-element's transparency by `30%`.
+
+# --hints--
+
+You should give `.penguin-body::before` an `opacity` of `70%`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.opacity, '0.7');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+--fcc-editable-region--
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-044.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-044.md
new file mode 100644
index 0000000000..7fe3dbf1ff
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-044.md
@@ -0,0 +1,166 @@
+---
+id: 619be946958c6009844f1dee
+title: Step 44
+challengeType: 0
+dashedName: step-44
+---
+
+# --description--
+
+Start the penguin's face, by adding two `div` elements within `.penguin-head`, and giving them both a `class` of `face`.
+
+# --hints--
+
+You should add `--fcc-expected--` `div` elements to `.penguin-head`, but found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin-head > div')?.length, 2);
+```
+
+You should give the first `div` a `class` of `face`, but found `--fcc-actual--`.
+
+```js
+assert.include(document.querySelector('.penguin-head > div:nth-of-type(1)')?.className, 'face');
+```
+
+You should give the second `div` a `class` of `face`, but found `--fcc-actual--`.
+
+```js
+assert.include(document.querySelector('.penguin-head > div:nth-of-type(2)')?.className, 'face');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-045.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-045.md
new file mode 100644
index 0000000000..4fc33b2312
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-045.md
@@ -0,0 +1,193 @@
+---
+id: 619c155df0063a0a3fec0e32
+title: Step 45
+challengeType: 0
+dashedName: step-45
+---
+
+# --description--
+
+Give the `.face` elements a `width` of `60%`, a `height` of `70%`, and a `background-color` of `white`.
+
+# --hints--
+
+You should use the `.face` selector.
+
+```js
+assert.match(code, /\.face\s*\{/);
+```
+
+You should give `.face` a `width` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.face')?.width);
+```
+
+You should give `.face` a `width` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.face')?.width, '60%');
+```
+
+You should give `.face` a `height` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.face')?.height);
+```
+
+You should give `.face` a `height` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.face')?.height, '70%');
+```
+
+You should give `.face` a `background-color` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.face')?.backgroundColor);
+```
+
+You should give `.face` a `background-color` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.face')?.backgroundColor, 'white');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-046.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-046.md
new file mode 100644
index 0000000000..da0048448f
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-046.md
@@ -0,0 +1,165 @@
+---
+id: 619c16debd0c270b01c5ce38
+title: Step 46
+challengeType: 0
+dashedName: step-46
+---
+
+# --description--
+
+Make the top corners of the `.face` elements have a radius of `70%`, and the bottom corners have a radius of `60%`.
+
+# --hints--
+
+You should give `.face` a `border-radius` of `70% 70% 60% 60%`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.face')?.borderTopLeftRadius, '70%');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.face')?.borderTopRightRadius, '70%');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.face')?.borderBottomLeftRadius, '60%');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.face')?.borderBottomRightRadius, '60%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+--fcc-editable-region--
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: white;
+
+}
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-047.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-047.md
new file mode 100644
index 0000000000..f67333230e
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-047.md
@@ -0,0 +1,169 @@
+---
+id: 619cfdf2e63ddf05feab86ad
+title: Step 47
+challengeType: 0
+dashedName: step-47
+---
+
+# --description--
+
+Position the `.face` elements so that they are `15%` from the top.
+
+# --hints--
+
+You should give `.face` a `top` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.face')?.top);
+```
+
+You should give `.face` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.face')?.top, '15%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+--fcc-editable-region--
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: white;
+ border-radius: 70% 70% 60% 60%;
+
+}
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-048.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-048.md
new file mode 100644
index 0000000000..2c66ba087a
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-048.md
@@ -0,0 +1,171 @@
+---
+id: 619d019488f98c06acbbb71a
+title: Step 48
+challengeType: 0
+dashedName: step-48
+---
+
+# --description--
+
+Currently, the two `.face` elements are on top of each other.
+
+Fix this, by adding a `class` of `left` to the first `.face` element, and a `class` of `right` to the second `.face` element.
+
+# --hints--
+
+You should give a `class` of `left` to the first `.face` element.
+
+```js
+assert.include(document.querySelector('.face:nth-of-type(1)').className, 'left');
+```
+
+You should give a `class` of `right` to the second `.face` element.
+
+```js
+assert.include(document.querySelector('.face:nth-of-type(2)').className, 'right');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: white;
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-049.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-049.md
new file mode 100644
index 0000000000..bcd6dddcf3
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-049.md
@@ -0,0 +1,177 @@
+---
+id: 619d022dc8400c0763829a17
+title: Step 49
+challengeType: 0
+dashedName: step-49
+---
+
+# --description--
+
+Target the `.face` element with the `left` class, and position it `5%` left of its parent.
+
+# --hints--
+
+You should use the `.face.left` selector.
+
+```js
+assert.match(code, /\.face\.left\s*\{/);
+```
+
+You should give `.face.left` a `left` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.face.left')?.left);
+```
+
+You should give `.face.left` a `left` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.face.left')?.left, '5%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: white;
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-050.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-050.md
new file mode 100644
index 0000000000..5df99daaa1
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-050.md
@@ -0,0 +1,181 @@
+---
+id: 619d02c7bc95bf0827a5d296
+title: Step 50
+challengeType: 0
+dashedName: step-50
+---
+
+# --description--
+
+Target the `.face` element with the `right` class, and position it `5%` right of its parent.
+
+# --hints--
+
+You should use the `.face.right` selector.
+
+```js
+assert.match(code, /\.face\.right\s*\{/);
+```
+
+You should give `.face.right` a `right` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.face.right')?.right);
+```
+
+You should give `.face.right` a `right` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.face.right')?.right, '5%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: white;
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+--fcc-editable-region--
+.face.left {
+ left: 5%;
+}
+
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-051.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-051.md
new file mode 100644
index 0000000000..2bcf1dacd6
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-051.md
@@ -0,0 +1,184 @@
+---
+id: 619d033915012509031f309a
+title: Step 51
+challengeType: 0
+dashedName: step-51
+---
+
+# --description--
+
+Below the `.face.right` element, add a `div` element with a `class` of `chin`.
+
+# --hints--
+
+You should add one `div` element within `.penguin-head`. Expected `--fcc-expected--` `div` elements, found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin-head > div')?.length, 3);
+```
+
+You should give the `div` a `class` of `chin`.
+
+```js
+assert.exists(document.querySelector('.penguin-head > div.chin'));
+```
+
+You should place the `div` element below the `.face.right` element.
+
+```js
+assert.exists(document.querySelector('.face.right + .chin'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: white;
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-052.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-052.md
new file mode 100644
index 0000000000..f6f831ae67
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-052.md
@@ -0,0 +1,210 @@
+---
+id: 619d03dadadb6509a16f4f5f
+title: Step 52
+challengeType: 0
+dashedName: step-52
+---
+
+# --description--
+
+Target the `.chin` element, and give it a `width` of `90%`, height of `70%`, and `background-color` of `white`.
+
+# --hints--
+
+You should use the `.chin` selector.
+
+```js
+assert.match(code, /\.chin\s*\{/);
+```
+
+You should give `.chin` a `width` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.chin')?.width);
+```
+
+You should give `.chin` a `width` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.chin')?.width, '90%');
+```
+
+You should give `.chin` a `height` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.chin')?.height);
+```
+
+You should give `.chin` a `height` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.chin')?.height, '70%');
+```
+
+You should give `.chin` a `background-color` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.chin')?.backgroundColor);
+```
+
+You should give `.chin` a `background-color` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.chin')?.backgroundColor, 'white');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: white;
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-053.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-053.md
new file mode 100644
index 0000000000..9e674446aa
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-053.md
@@ -0,0 +1,206 @@
+---
+id: 619d0503e03a790a4179d463
+title: Step 53
+challengeType: 0
+dashedName: step-53
+---
+
+# --description--
+
+Position the `.chin` element such that it is `25%` from the top, and `5%` from the left of its parent. Then, give the top corners a radius of `70%`, and the bottom corners a radius of `100%`.
+
+# --hints--
+
+You should give `.chin` a `top` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.chin')?.top);
+```
+
+You should give `.chin` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.chin')?.top, '25%');
+```
+
+You should give `.chin` a `left` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.chin')?.left);
+```
+
+You should give `.chin` a `left` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.chin')?.left, '5%');
+```
+
+You should give `.chin` a `border-radius` of `70% 70% 100% 100%`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.chin')?.borderTopLeftRadius, '70%');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.chin')?.borderTopRightRadius, '70%');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.chin')?.borderBottomRightRadius, '100%');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.chin')?.borderBottomLeftRadius, '100%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: white;
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+--fcc-editable-region--
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: white;
+
+}
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-054.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-054.md
new file mode 100644
index 0000000000..00afba77fc
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-054.md
@@ -0,0 +1,197 @@
+---
+id: 619d05c54dabca0b10058235
+title: Step 54
+challengeType: 0
+dashedName: step-54
+---
+
+# --description--
+
+So far, the `.face` and `.chin` elements have the same `background-color`.
+
+Create a custom CSS property called `--penguin-face`, and set it to `white`.
+
+# --hints--
+
+You should use the `:root` selector.
+
+```js
+assert.match(code, /:root\s*\{/);
+```
+
+You should give `:root` a `--penguin-face` property.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle(':root')?.getPropertyValue('--penguin-face'));
+```
+
+You should give `:root` a `--penguin-face` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle(':root')?.getPropVal('--penguin-face', true), 'white');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: white;
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: white;
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-055.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-055.md
new file mode 100644
index 0000000000..356e2d9123
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-055.md
@@ -0,0 +1,197 @@
+---
+id: 619d0882f54bf40bdc4671ed
+title: Step 55
+challengeType: 0
+dashedName: step-55
+---
+
+# --description--
+
+Where relevant, replace property values with your `--penguin-face` variable.
+
+# --hints--
+
+You should give `.face` a `background-color` of `var(--penguin-face)`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.face')?.getPropVal('background-color', true), 'var(--penguin-face)');
+```
+
+You should give `.chin` a `background-color` of `var(--penguin-face)`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.chin')?.getPropVal('background-color', true), 'var(--penguin-face)');
+```
+
+You should not use `var(--penguin-face)` in the `.penguin-body` selector.
+
+```js
+assert.notInclude(new __helpers.CSSHelp(document).getStyle('.penguin-body')?.getPropVal('background-color', true), 'var(--penguin-face)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+--fcc-editable-region--
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: white;
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: white;
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-056.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-056.md
new file mode 100644
index 0000000000..d15d63bf30
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-056.md
@@ -0,0 +1,222 @@
+---
+id: 619d090cd8d6db0c93dc5087
+title: Step 56
+challengeType: 0
+dashedName: step-56
+---
+
+# --description--
+
+Below the `.chin` element, add two `div` elements each with a `class` of `eye`. Also, give the first `.eye` element a `class` of `left`, and the second `.eye` element a `class` of `right`.
+
+# --hints--
+
+You should add two `div` elements within `.penguin-head`. Expected `--fcc-expected--` `div` elements, found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin-head > div')?.length, 5);
+```
+
+You should give the first new `div` a `class` of `eye`.
+
+```js
+assert.exists(document.querySelector('.penguin-head > div.eye'));
+```
+
+You should give the second new `div` a `class` of `eye`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin-head > div.eye')?.length, 2);
+```
+
+You should give the first new `div` a `class` of `left`.
+
+```js
+assert.exists(document.querySelector('.penguin-head > div.eye.left'));
+```
+
+You should give the second new `div` a `class` of `right`.
+
+```js
+assert.exists(document.querySelector('.penguin-head > div.eye.right'));
+```
+
+You should place `div.eye.left` after `div.chin`.
+
+```js
+assert.exists(document.querySelector('.chin + .eye.left'));
+```
+
+You should place `div.eye.right` after `div.eye.left`.
+
+```js
+assert.exists(document.querySelector('.eye.left + .eye.right'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-057.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-057.md
new file mode 100644
index 0000000000..4698b61a54
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-057.md
@@ -0,0 +1,207 @@
+---
+id: 619d0b51ca42ed0d74582186
+title: Step 57
+challengeType: 0
+dashedName: step-57
+---
+
+# --description--
+
+Target the `.eye` elements, and give them a `width` of `15%`, `height` of `17%`, and `background-color` of `black`.
+
+# --hints--
+
+You should use the `.eye` selector.
+
+```js
+assert.match(code, /\.eye\s*\{/);
+```
+
+You should give `.eye` a `width` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye')?.width, '15%');
+```
+
+You should give `.eye` a `height` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye')?.height, '17%');
+```
+
+You should give `.eye` a `background-color` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye')?.backgroundColor, 'black');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-058.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-058.md
new file mode 100644
index 0000000000..82e66a49be
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-058.md
@@ -0,0 +1,200 @@
+---
+id: 619d0bc9cb05360e1bf549c3
+title: Step 58
+challengeType: 0
+dashedName: step-58
+---
+
+# --description--
+
+Position the `.eye` elements `45%` from the top of their parent, and give all corners a radius of `50%`.
+
+# --hints--
+
+You should give `.eye` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye')?.top, '45%');
+```
+
+You should give `.eye` a `border-radius` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye')?.borderRadius, '50%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+--fcc-editable-region--
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+
+}
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-059.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-059.md
new file mode 100644
index 0000000000..218fe144d6
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-059.md
@@ -0,0 +1,215 @@
+---
+id: 619d0c1594c38c0ebae75878
+title: Step 59
+challengeType: 0
+dashedName: step-59
+---
+
+# --description--
+
+Target the `.eye` element with the `left` class, and position it `25%` from the left of its parent. Then, target the `.eye` element with the `right` class, and position it `25%` from the right of its parent.
+
+# --hints--
+
+You should use the `.eye.left` selector.
+
+```js
+assert.match(code, /\.eye\.left\s*\{/);
+```
+
+You should give `.eye.left` a `left` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye.left')?.left, '25%');
+```
+
+You should use the `.eye.right` selector.
+
+```js
+assert.match(code, /\.eye\.right\s*\{/);
+```
+
+You should give `.eye.right` a `right` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye.right')?.right, '25%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-060.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-060.md
new file mode 100644
index 0000000000..d7d99d0185
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-060.md
@@ -0,0 +1,225 @@
+---
+id: 619d0d18ca99870f884a7bff
+title: Step 60
+challengeType: 0
+dashedName: step-60
+---
+
+# --description--
+
+Within each `.eye` element, add a `div` with a `class` of `eye-lid`.
+
+# --hints--
+
+You should add one `div` element within `.eye.left`, but found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.eye.left > div')?.length ?? 0, 1);
+```
+
+You should add one `div` element within `.eye.right`, but found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.eye.right > div')?.length ?? 0, 1);
+```
+
+You should give the first new `div` a `class` of `eye-lid`.
+
+```js
+assert.exists(document.querySelector('.eye.left > div.eye-lid'));
+```
+
+You should give the second new `div` a `class` of `eye-lid`.
+
+```js
+assert.exists(document.querySelector('.eye.right > div.eye-lid'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-061.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-061.md
new file mode 100644
index 0000000000..782f55416f
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-061.md
@@ -0,0 +1,227 @@
+---
+id: 619d0daf214542102739b0da
+title: Step 61
+challengeType: 0
+dashedName: step-61
+---
+
+# --description--
+
+Target the `.eye-lid` elements, and give them a `width` of `150%`, `height` of `100%`, and `background-color` of `--penguin-face`.
+
+# --hints--
+
+You should use the `.eye-lid` selector.
+
+```js
+assert.match(code, /\.eye-lid\s*\{/);
+```
+
+You should give `.eye-lid` a `width` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye-lid')?.width, '150%');
+```
+
+You should give `.eye-lid` a `height` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye-lid')?.height, '100%');
+```
+
+You should give `.eye-lid` a `background-color` of `var(--penguin-face)`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye-lid')?.getPropVal('background-color', true), 'var(--penguin-face)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-062.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-062.md
new file mode 100644
index 0000000000..7995825c88
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-062.md
@@ -0,0 +1,226 @@
+---
+id: 619d0e56f9ca9710fcb974e3
+title: Step 62
+challengeType: 0
+dashedName: step-62
+---
+
+# --description--
+
+Position the `.eye-lid` elements `25%` from the top, and `-23%` from the left of their parents. Then, give all corners a radius of `50%`.
+
+# --hints--
+
+You should give `.eye-lid` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye-lid')?.top, '25%');
+```
+
+You should give `.eye-lid` a `left` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye-lid')?.left, '-23%');
+```
+
+You should give `.eye-lid` a `border-radius` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.eye-lid')?.borderRadius, '50%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+--fcc-editable-region--
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+
+}
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-063.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-063.md
new file mode 100644
index 0000000000..7a6590f108
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-063.md
@@ -0,0 +1,247 @@
+---
+id: 619d0eec0ac40611b41e2ccc
+title: Step 63
+challengeType: 0
+dashedName: step-63
+---
+
+# --description--
+
+Below the `.eye.right` element, add two `div` elements each with a `class` of `blush`. Also, give the first `.blush` element a `class` of `left`, and the second `.blush` element a `class` of `right`.
+
+# --hints--
+
+You should add two `div` elements within `.penguin-head`. Expected `--fcc-expected--` `div` elements, found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin-head > div')?.length, 7);
+```
+
+You should give the first new `div` a `class` of `blush`.
+
+```js
+assert.exists(document.querySelector('.penguin-head > div.blush'));
+```
+
+You should give the second new `div` a `class` of `blush`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin-head > div.blush')?.length, 2);
+```
+
+You should give the first new `div` a `class` of `left`.
+
+```js
+assert.exists(document.querySelector('.penguin-head > div.blush.left'));
+```
+
+You should give the second new `div` a `class` of `right`.
+
+```js
+assert.exists(document.querySelector('.penguin-head > div.blush.right'));
+```
+
+You should place `.blush.right` after `.blush.left`.
+
+```js
+assert.exists(document.querySelector('.blush.left + .blush.right'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-064.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-064.md
new file mode 100644
index 0000000000..74f95e1e23
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-064.md
@@ -0,0 +1,238 @@
+---
+id: 619d0fc9825c271253df28d4
+title: Step 64
+challengeType: 0
+dashedName: step-64
+---
+
+# --description--
+
+Target the `.blush` elements, and give them a `width` of `15%`, `height` of `10%`, and `background-color` of `pink`.
+
+# --hints--
+
+You should use the `.blush` selector.
+
+```js
+assert.match(code, /\.blush\s*\{/);
+```
+
+You should give `.blush` a `width` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.blush')?.width, '15%');
+```
+
+You should give `.blush` a `height` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.blush')?.height, '10%');
+```
+
+You should give `.blush` a `background-color` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.blush')?.backgroundColor, 'pink');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-065.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-065.md
new file mode 100644
index 0000000000..409050d612
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-065.md
@@ -0,0 +1,231 @@
+---
+id: 619d102d786c3d13124c37c6
+title: Step 65
+challengeType: 0
+dashedName: step-65
+---
+
+# --description--
+
+Position the `.blush` elements `65%` from the top of their parent, and give all corners a radius of `50%`.
+
+# --hints--
+
+You should give `.blush` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.blush')?.top, '65%');
+```
+
+You should give `.blush` a `border-radius` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.blush')?.borderRadius, '50%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+--fcc-editable-region--
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+
+}
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-066.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-066.md
new file mode 100644
index 0000000000..e0b70decae
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-066.md
@@ -0,0 +1,246 @@
+---
+id: 619d107edf7ddf13cc77106a
+title: Step 66
+challengeType: 0
+dashedName: step-66
+---
+
+# --description--
+
+Target the `.blush` element with a `class` of `left`, and position it `15%` left of its parent. Then, target the `.blush` element with a `class` of `right`, and position it `15%` right of its parent.
+
+# --hints--
+
+You should use the `.blush.left` selector.
+
+```js
+assert.match(code, /\.blush\.left\s*\{/);
+```
+
+You should give `.blush.left` a `left` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.blush.left')?.left, '15%');
+```
+
+You should use the `.blush.right` selector.
+
+```js
+assert.match(code, /\.blush\.right\s*\{/);
+```
+
+You should give `.blush.right` a `right` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.blush.right')?.right, '15%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-067.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-067.md
new file mode 100644
index 0000000000..2b6871d420
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-067.md
@@ -0,0 +1,271 @@
+---
+id: 619d10cc98145f14820399c5
+title: Step 67
+challengeType: 0
+dashedName: step-67
+---
+
+# --description--
+
+Below the `.blush.right` element, add two `div` elements each with a `class` of `beak`. Also, give the first `.beak` element a `class` of `top`, and the second `.beak` element a `class` of `bottom`.
+
+# --hints--
+
+You should add two `div` elements within `.penguin-head`. Expected `--fcc-expected--` `div` elements, found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin-head > div')?.length, 9);
+```
+
+You should give the first new `div` a `class` of `beak`.
+
+```js
+assert.exists(document.querySelector('.penguin-head > div.beak'));
+```
+
+You should give the second new `div` a `class` of `beak`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin-head > div.beak')?.length, 2);
+```
+
+You should give the first new `div` a `class` of `top`.
+
+```js
+assert.exists(document.querySelector('.penguin-head > div.beak.top'));
+```
+
+You should give the second new `div` a `class` of `bottom`.
+
+```js
+assert.exists(document.querySelector('.penguin-head > div.beak.bottom'));
+```
+
+You should place `div.beak.top` after `div.blush.right`.
+
+```js
+assert.exists(document.querySelector('.blush.right + .beak.top'));
+```
+
+You should place `div.beak.bottom` after `div.beak.top`.
+
+```js
+assert.exists(document.querySelector('.beak.top + .beak.bottom'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-068.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-068.md
new file mode 100644
index 0000000000..ad760e9f3e
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-068.md
@@ -0,0 +1,256 @@
+---
+id: 619d115e2adcd71538e82ebb
+title: Step 68
+challengeType: 0
+dashedName: step-68
+---
+
+# --description--
+
+Target the `.beak` elements, and give them a `height` of `10%`, `background-color` of `orange`, and give all corners a radius of `50%`.
+
+# --hints--
+
+You should use the `.beak` selector.
+
+```js
+assert.match(code, /\.beak\s*\{/);
+```
+
+You should give `.beak` a `height` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.beak')?.height, '10%');
+```
+
+You should give `.beak` a `background-color` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.beak')?.backgroundColor, 'orange');
+```
+
+You should give `.beak` a `border-radius` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.beak')?.borderRadius, '50%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-069.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-069.md
new file mode 100644
index 0000000000..eef1cd2991
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-069.md
@@ -0,0 +1,262 @@
+---
+id: 619d11e6d5ef9515d2a16033
+title: Step 69
+challengeType: 0
+dashedName: step-69
+---
+
+# --description--
+
+Target the `.beak` element with a `class` of `top`, give it a `width` of `20%`, and position it `60%` from the top, and `40%` from the left of its parent.
+
+# --hints--
+
+You should use the `.beak.top` selector.
+
+```js
+assert.match(code, /\.beak\.top\s*\{/);
+```
+
+You should give `.beak.top` a `width` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.beak.top')?.width, '20%');
+```
+
+You should give `.beak.top` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.beak.top')?.top, '60%');
+```
+
+You should give `.beak.top` a `left` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.beak.top')?.left, '40%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-070.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-070.md
new file mode 100644
index 0000000000..c979eb17ba
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-070.md
@@ -0,0 +1,267 @@
+---
+id: 619d129a417d0716a94de913
+title: Step 70
+challengeType: 0
+dashedName: step-70
+---
+
+# --description--
+
+Target the `.beak` element with a `class` of `bottom`, and give it a `width` `4%` smaller than `.beak.top`, `5%` further from the top, and `2%` further from the left of its parent than `.beak.top`.
+
+# --hints--
+
+You should use the `.beak.bottom` selector.
+
+```js
+assert.match(code, /\.beak\.bottom\s*\{/);
+```
+
+You should give `.beak.bottom` a `width` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.beak.bottom')?.width, '16%');
+```
+
+You should give `.beak.bottom` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.beak.bottom')?.top, '65%');
+```
+
+You should give `.beak.bottom` a `left` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.beak.bottom')?.left, '42%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+--fcc-editable-region--
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-071.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-071.md
new file mode 100644
index 0000000000..a24ef6f19d
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-071.md
@@ -0,0 +1,267 @@
+---
+id: 619d1340361095175f4b5115
+title: Step 71
+challengeType: 0
+dashedName: step-71
+---
+
+# --description--
+
+The penguin's body looks a bit plain. Spruce him up by adding a `div` element with a `class` of `shirt`, immediately before the `.penguin-body` element.
+
+# --hints--
+
+You should add a `div` element within `.penguin`. Expected `--fcc-expected--` `div` elements, found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin > div')?.length, 3);
+```
+
+You should give the new `div` a `class` of `shirt`.
+
+```js
+assert.exists(document.querySelector('.penguin > div.shirt'));
+```
+
+You should place the new `div` before `.penguin-body`.
+
+```js
+assert.exists(document.querySelector('.shirt + .penguin-body'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-072.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-072.md
new file mode 100644
index 0000000000..6bdc661d21
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-072.md
@@ -0,0 +1,263 @@
+---
+id: 619d15797b580c1828b05426
+title: Step 72
+challengeType: 0
+dashedName: step-72
+---
+
+# --description--
+
+Within the `.shirt` element, add a `div` with the following emoji as content: 💜
+
+# --hints--
+
+You should add a `div` element within `div.shirt`. Expected `--fcc-expected--` `div` element, found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.shirt > div')?.length, 1);
+```
+
+You should give the new `div` a content of `💜`, but found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelector('.shirt > div')?.textContent, '💜');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-073.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-073.md
new file mode 100644
index 0000000000..9d3bd76d6e
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-073.md
@@ -0,0 +1,264 @@
+---
+id: 619d15d955d9d418c4487bbc
+title: Step 73
+challengeType: 0
+dashedName: step-73
+---
+
+# --description--
+
+Within `.shirt`, after the `div` element, add a `p` element with the following content: `I CSS`
+
+# --hints--
+
+You should add one `p` element within `.shirt`, but found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.shirt > p')?.length, 1);
+```
+
+You should give the `p` element the content `I CSS`, but found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelector('.shirt > p')?.textContent, 'I CSS');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-074.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-074.md
new file mode 100644
index 0000000000..810eb643f1
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-074.md
@@ -0,0 +1,278 @@
+---
+id: 619d1629a8adc61960ca8b40
+title: Step 74
+challengeType: 0
+dashedName: step-74
+---
+
+# --description--
+
+Target the `.shirt` element, and set its `font-size` to `25px`, `font-family` to `Helvetica` with a fallback of `sans-serif`, and `font-weight` to `bold`.
+
+# --hints--
+
+You should use the `.shirt` selector.
+
+```js
+assert.match(code, /\.shirt\s*\{/);
+```
+
+You should give `.shirt` a `font-size` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.shirt')?.fontSize, '25px');
+```
+
+You should give `.shirt` a `font-family` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.shirt')?.fontFamily, 'Helvetica, sans-serif');
+```
+
+You should give `.shirt` a `font-weight` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.shirt')?.fontWeight, 'bold');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-075.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-075.md
new file mode 100644
index 0000000000..eb29549800
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-075.md
@@ -0,0 +1,272 @@
+---
+id: 619d1c5fc9f8941a400955da
+title: Step 75
+challengeType: 0
+dashedName: step-75
+---
+
+# --description--
+
+If you look closely, the _heart_ emoji is slightly different. This is because some of the character's properties were overridden by the `font-weight` style of `bold`.
+
+Fix this, by targetting the `div` with the heart emoji, and setting its `font-weight` to its original value.
+
+# --hints--
+
+You should use the `.shirt div` selector to target the `div` with the heart emoji.
+
+```js
+assert.match(code, /\.shirt div\s*\{/);
+```
+
+You should give the `.shirt div` a `font-weight` of `initial` or `normal`.
+
+```js
+assert.include(['normal', 'initial'], new __helpers.CSSHelp(document).getStyle('.shirt div')?.fontWeight);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+--fcc-editable-region--
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+}
+
+
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-076.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-076.md
new file mode 100644
index 0000000000..bad0820720
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-076.md
@@ -0,0 +1,273 @@
+---
+id: 619d1dab9ff3421ae1976991
+title: Step 76
+challengeType: 0
+dashedName: step-76
+---
+
+# --description--
+
+Position the `div` with the heart emoji `11.5px` from the top, and `12px` from the left of its parent.
+
+# --hints--
+
+You should give `.shirt div` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.shirt div')?.top, '11.5px');
+```
+
+You should give `.shirt div` a `left` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.shirt div')?.left, '12px');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+--fcc-editable-region--
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+}
+
+.shirt div {
+ font-weight: initial;
+
+}
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-077.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-077.md
new file mode 100644
index 0000000000..5c3687dcfe
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-077.md
@@ -0,0 +1,281 @@
+---
+id: 619d1deb8b04811b8839ffe4
+title: Step 77
+challengeType: 0
+dashedName: step-77
+---
+
+# --description--
+
+Position the `.shirt` element `165px` from the top, and `127.5px` from the left of its parent. Then, increase its stacking order such that it appears above the `.penguin-body` element.
+
+# --hints--
+
+You should give `.shirt` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.shirt')?.top, '165px');
+```
+
+You should give `.shirt` a `left` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.shirt')?.left, '127.5px');
+```
+
+You should give the `.shirt` element a `z-index` of `1`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.shirt')?.zIndex, '1');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+--fcc-editable-region--
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-078.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-078.md
new file mode 100644
index 0000000000..523df5ba26
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-078.md
@@ -0,0 +1,272 @@
+---
+id: 619d1e7a8e81a61c5a819dc4
+title: Step 78
+challengeType: 0
+dashedName: step-78
+---
+
+# --description--
+
+For the shirt's final touch, set the `color` to `#6a6969`.
+
+# --hints--
+
+You should give `.shirt` a `color` of `#6a6969`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.shirt')?.color, 'rgb(106, 105, 105)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+--fcc-editable-region--
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+--fcc-editable-region--
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-079.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-079.md
new file mode 100644
index 0000000000..7844e58f3a
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-079.md
@@ -0,0 +1,306 @@
+---
+id: 619d1ed33c9a071cf657a0d6
+title: Step 79
+challengeType: 0
+dashedName: step-79
+---
+
+# --description--
+
+Fun fact: Penguins cannot stand without at least two feet.
+
+Within the `.penguin-body` element, add two `div` elements each with a `class` of `foot`. Give the first `.foot` a `class` of `left`, and the second `.foot` a `class` of `right`.
+
+# --hints--
+
+You should add two `div` elements within `.penguin-body`. Expected `--fcc-expected--` `div` elements, found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin-body > div')?.length, 2);
+```
+
+You should give the first new `div` a `class` of `foot`.
+
+```js
+assert.exists(document.querySelector('.penguin-body > div.foot'));
+```
+
+You should give the second new `div` a `class` of `foot`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin-body > div.foot')?.length, 2);
+```
+
+You should give one `div` a `class` of `left`.
+
+```js
+assert.exists(document.querySelector('.penguin-body > div.foot.left'));
+```
+
+You should give the other `div` a `class` of `right`.
+
+```js
+assert.exists(document.querySelector('.penguin-body > div.foot.right'));
+```
+
+You should place `.foot.right` after `.foot.left`.
+
+```js
+assert.exists(document.querySelector('.foot.left + .foot.right'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-080.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-080.md
new file mode 100644
index 0000000000..d8f50fde05
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-080.md
@@ -0,0 +1,295 @@
+---
+id: 619d1fb5d244c31db8a7fdb7
+title: Step 80
+challengeType: 0
+dashedName: step-80
+---
+
+# --description--
+
+Target the `.foot` elements, and give them a `width` of `15%`, `height` of `30%`, and `background-color` of `orange`.
+
+# --hints--
+
+You should use the `.foot` selector.
+
+```js
+assert.match(code, /\.foot\s*\{/);
+```
+
+You should give `.foot` a `width` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.foot')?.width, '15%');
+```
+
+You should give `.foot` a `height` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.foot')?.height, '30%');
+```
+
+You should give `.foot` a `background-color` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.foot')?.backgroundColor, 'orange');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-081.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-081.md
new file mode 100644
index 0000000000..31d95684a7
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-081.md
@@ -0,0 +1,288 @@
+---
+id: 619d204bd73ae51e743b8e94
+title: Step 81
+challengeType: 0
+dashedName: step-81
+---
+
+# --description--
+
+Position the `.foot` elements `85%` from the top of their parent, and give all corners a radius of `50%`.
+
+# --hints--
+
+You should give `.foot` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.foot')?.top, '85%');
+```
+
+You should give `.foot` a `border-radius` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.foot')?.borderRadius, '50%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+--fcc-editable-region--
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: orange;
+
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-082.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-082.md
new file mode 100644
index 0000000000..7d8fcee5c5
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-082.md
@@ -0,0 +1,304 @@
+---
+id: 619d20b12996101f430920fb
+title: Step 82
+challengeType: 0
+dashedName: step-82
+---
+
+# --description--
+
+The penguin's beak and feet share the same `color`.
+
+Create a new custom CSS variable named `--penguin-picorna`, and replace all relavant property values with it.
+
+# --hints--
+
+You should give `:root` a `--penguin-picorna` property.
+
+```js
+assert.exists(new __helpers.CSSHelp(document).getStyle(':root').getPropertyValue('--penguin-picorna'));
+```
+
+You should give `--penguin-picorna` a value of `orange`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle(':root').getPropVal('--penguin-picorna', true), 'orange');
+```
+
+You should give `.beak` a `background-color` of `var(--penguin-picorna)`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.beak')?.getPropVal('background-color', true), 'var(--penguin-picorna)');
+```
+
+You should give `.foot` a `background-color` of `var(--penguin-picorna)`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.foot')?.getPropVal('background-color', true), 'var(--penguin-picorna)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+--fcc-editable-region--
+:root {
+ --penguin-face: white;
+
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: orange;
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: orange;
+ top: 85%;
+ border-radius: 50%;
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-083.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-083.md
new file mode 100644
index 0000000000..fb137f377f
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-083.md
@@ -0,0 +1,304 @@
+---
+id: 619d21fe6a3f9b2016be9d9d
+title: Step 83
+challengeType: 0
+dashedName: step-83
+---
+
+# --description--
+
+Target the `.foot` element with a `class` of `left`, and position it `25%` left of its parent. Then, target the `.foot` element with a `class` of `right`, and position it `25%` right of its parent.
+
+# --hints--
+
+You should use the `.foot.left` selector.
+
+```js
+assert.match(code, /\.foot\.left\s*\{/);
+```
+
+You should give `.foot.left` a `left` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.left')?.left, '25%');
+```
+
+You should use the `.foot.right` selector.
+
+```js
+assert.match(code, /\.foot\.right\s*\{/);
+```
+
+You should give `.foot.right` a `right` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.right')?.right, '25%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+--fcc-editable-region--
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+}
+
+
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-084.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-084.md
new file mode 100644
index 0000000000..71e3d48bf0
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-084.md
@@ -0,0 +1,300 @@
+---
+id: 619d229b0e542520cd91c685
+title: Step 84
+challengeType: 0
+dashedName: step-84
+---
+
+# --description--
+
+To make the penguin's feet look more _penguiny_, rotate the left foot by `80deg`, and the right by `-80deg`.
+
+# --hints--
+
+You should give `.foot.left` a `transform` of `rotate(80deg)`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.left').getPropVal('transform', true), 'rotate(80deg)');
+```
+
+You should give `.foot.right` a `transform` of `rotate(-80deg)`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.foot.right').getPropVal('transform', true), 'rotate(-80deg)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+}
+
+--fcc-editable-region--
+.foot.left {
+ left: 25%;
+
+}
+
+.foot.right {
+ right: 25%;
+
+}
+--fcc-editable-region--
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-085.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-085.md
new file mode 100644
index 0000000000..96f4572e97
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-085.md
@@ -0,0 +1,295 @@
+---
+id: 619d23089e787e216a7043d6
+title: Step 85
+challengeType: 0
+dashedName: step-85
+---
+
+# --description--
+
+Change the stacking order of the `.foot` elements such that they appear beneath the `.penguin-body` element.
+
+# --hints--
+
+You should give `.foot` a `z-index` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.foot')?.zIndex, '-1');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+--fcc-editable-region--
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+
+}
+--fcc-editable-region--
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-086.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-086.md
new file mode 100644
index 0000000000..8bffabba70
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-086.md
@@ -0,0 +1,328 @@
+---
+id: 619d237a107c10221ed743fa
+title: Step 86
+challengeType: 0
+dashedName: step-86
+---
+
+# --description--
+
+Fun fact: Penguins cannot fly without wings.
+
+Within `.penguin-body`, before the `.foot` elements, add two `div` elements each with a `class` of `arm`. Give the first `.arm` a `class` of `left`, and the second `.arm` a `class` of `right`.
+
+# --hints--
+
+You should add two `div` elements within `.penguin-body`. Expected `--fcc-expected--` `div` elements, found `--fcc-actual--`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin-body > div')?.length, 4);
+```
+
+You should give the first new `div` a `class` of `arm`.
+
+```js
+assert.exists(document.querySelector('.penguin-body > div.arm'));
+```
+
+You should give the second new `div` a `class` of `arm`.
+
+```js
+assert.equal(document.querySelectorAll('.penguin-body > div.arm')?.length, 2);
+```
+
+You should give one `div` a `class` of `left`.
+
+```js
+assert.exists(document.querySelector('.penguin-body > div.arm.left'));
+```
+
+You should give the other `div` a `class` of `right`.
+
+```js
+assert.exists(document.querySelector('.penguin-body > div.arm.right'));
+```
+
+You should place `.arm.right` after `.arm.left`.
+
+```js
+assert.exists(document.querySelector('.arm.left + .arm.right'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-087.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-087.md
new file mode 100644
index 0000000000..db7f52f1a3
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-087.md
@@ -0,0 +1,317 @@
+---
+id: 619d26b12e651022d80cd017
+title: Step 87
+challengeType: 0
+dashedName: step-87
+---
+
+# --description--
+
+Target the `.arm` elements, and give them a `width` of `30%`, a `height` of `60%`, and a `background` of linear gradient at `90deg` from clockwise, starting at `gray`, and ending at `rgb(209, 210, 199)`.
+
+# --hints--
+
+You should use the `.arm` selector.
+
+```js
+assert.match(code, /\.arm\s*\{/);
+```
+
+You should give `.arm` a `width` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm')?.width, '30%');
+```
+
+You should give `.arm` a `height` of `--fcc-expected--`, found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm')?.height, '60%');
+```
+
+You should give `.arm` a `background` of `linear-gradient(90deg, gray, rgb(209, 210, 199))`.
+
+```js
+assert.include(['linear-gradient(90deg,gray,rgb(209,210,199))', 'rgba(0,0,0,0)linear-gradient(90deg,gray,rgb(209,210,199))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.arm')?.getPropVal('background', true));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-088.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-088.md
new file mode 100644
index 0000000000..4e6ff78c38
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-088.md
@@ -0,0 +1,332 @@
+---
+id: 619d2712853306238f41828e
+title: Step 88
+challengeType: 0
+dashedName: step-88
+---
+
+# --description--
+
+Create a custom CSS variable named `--penguin-skin`, and set it to `gray`. Then, replace all relevant property values with it.
+
+# --hints--
+
+You should give `:root` a `--penguin-skin` property.
+
+```js
+assert.exists(new __helpers.CSSHelp(document).getStyle(':root').getPropertyValue('--penguin-skin'));
+```
+
+You should give `--penguin-skin` a value of `gray`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle(':root').getPropVal('--penguin-skin', true), 'gray');
+```
+
+You should give `.penguin-head` a `background` of `linear-gradient(45deg, var(--penguin-skin), rgb(239, 240, 228))`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.getPropVal('background', true), 'linear-gradient(45deg,var(--penguin-skin),rgb(239,240,228))');
+```
+
+You should give `.penguin-body::before` a `background-color` of `var(--penguin-skin)`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.getPropVal('background-color', true), 'var(--penguin-skin)');
+```
+
+You should give `.arm` a `background` of `linear-gradient(90deg, var(--penguin-skin), rgb(209, 210, 199))`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm')?.getPropVal('background', true), 'linear-gradient(90deg,var(--penguin-skin),rgb(209,210,199))');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+--fcc-editable-region--
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ gray,
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: gray;
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ gray,
+ rgb(209, 210, 199)
+ );
+}
+--fcc-editable-region--
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-089.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-089.md
new file mode 100644
index 0000000000..e8daf5cee8
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-089.md
@@ -0,0 +1,340 @@
+---
+id: 619d2b7a84e78b246f2d17a2
+title: Step 89
+challengeType: 0
+dashedName: step-89
+---
+
+# --description--
+
+Target the `.arm` element with a `class` of `left`, and position it `35%` from the top, and `5%` from the left of its parent. Then, target the `.arm` element with a `class` of `right`, and position it `0%` from the top, and `-5%` from the right of its parent.
+
+# --hints--
+
+You should use the `.arm.left` selector.
+
+```js
+assert.match(code, /\.arm\.left\s*\{/);
+```
+
+You should give `.arm.left` a `top` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left')?.top, '35%');
+```
+
+You should give `.arm.left` a `left` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left')?.left, '5%');
+```
+
+You should use the `.arm.right` selector.
+
+```js
+assert.match(code, /\.arm\.right\s*\{/);
+```
+
+You should give `.arm.right` a `top` of `0%`.
+
+```js
+assert.include(['0%', '0', '0px'], new __helpers.CSSHelp(document).getStyle('.arm.right')?.top);
+```
+
+You should give `.arm.right` a `right` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.right, '-5%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-090.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-090.md
new file mode 100644
index 0000000000..5bc1ed460d
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-090.md
@@ -0,0 +1,325 @@
+---
+id: 619d2bd9c1d43c2526e96f1f
+title: Step 90
+challengeType: 0
+dashedName: step-90
+---
+
+# --description--
+
+Within the `.arm.left` selector, alter the origin of the `transform` function to be the top left corner of its parent.
+
+# --hints--
+
+You should use the `transform-origin` property to do this.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.arm.left')?.transformOrigin);
+```
+
+You should give `.arm.left` a `transform-origin` of `0% 0%` or `top left`.
+
+```js
+assert.include(['0% 0%', 'left top', '0% 0% 0px', 'left top 0px'], new __helpers.CSSHelp(document).getStyle('.arm.left')?.transformOrigin);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+}
+
+--fcc-editable-region--
+.arm.left {
+ top: 35%;
+ left: 5%;
+
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+}
+--fcc-editable-region--
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-091.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-091.md
new file mode 100644
index 0000000000..02b4677740
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-091.md
@@ -0,0 +1,320 @@
+---
+id: 619d2d4e80400325ff89664a
+title: Step 91
+challengeType: 0
+dashedName: step-91
+---
+
+# --description--
+
+To keep the linear gradient on the correct side of the penguin's left arm, first rotate it by `130deg`, then invert the x-axis.
+
+# --hints--
+
+You should give `.arm.left` a `transform` of `rotate(130deg) scaleX(-1)`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left').getPropVal('transform', true), 'rotate(130deg)scaleX(-1)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+}
+
+--fcc-editable-region--
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+
+}
+--fcc-editable-region--
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+}
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-092.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-092.md
new file mode 100644
index 0000000000..8aedbc27cf
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-092.md
@@ -0,0 +1,321 @@
+---
+id: 619d2ebc81ba81271460850d
+title: Step 92
+challengeType: 0
+dashedName: step-92
+---
+
+# --description--
+
+Rotate the right arm by `45deg` counterclockwise.
+
+# --hints--
+
+You should give `.arm.right` a `transform` of `rotate(-45deg)`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.getPropVal('transform', true), 'rotate(-45deg)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+}
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+}
+
+--fcc-editable-region--
+.arm.right {
+ top: 0%;
+ right: -5%;
+
+}
+--fcc-editable-region--
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-093.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-093.md
new file mode 100644
index 0000000000..fbeb5d170d
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-093.md
@@ -0,0 +1,327 @@
+---
+id: 619d2f0e9440bc27caee1cec
+title: Step 93
+challengeType: 0
+dashedName: step-93
+---
+
+# --description--
+
+Fun fact: Most, if not all, flippers are not naturally rectangles.
+
+Give the `.arm` elements top -left, -right, and bottom-right corners a radius of `30%`, and the bottom-left corner a radius of `120%`.
+
+# --hints--
+
+You should give `.arm` a `border-radius` of `30% 30% 120% 30%`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm')?.borderTopLeftRadius, '30%');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm')?.borderTopRightRadius, '30%');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm')?.borderBottomRightRadius, '30%');
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm')?.borderBottomLeftRadius, '120%');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+--fcc-editable-region--
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+
+}
+--fcc-editable-region--
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-094.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-094.md
new file mode 100644
index 0000000000..c937dc17e5
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-094.md
@@ -0,0 +1,323 @@
+---
+id: 619d2fd3ff4f772882e3d998
+title: Step 94
+challengeType: 0
+dashedName: step-94
+---
+
+# --description--
+
+Change the `.arm` elements' stacking order such that they appear behind the `.penguin-body` element.
+
+# --hints--
+
+You should give `.arm` a `z-index` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm')?.zIndex, '-1');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+--fcc-editable-region--
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+ border-radius: 30% 30% 30% 120%;
+
+}
+--fcc-editable-region--
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-095.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-095.md
new file mode 100644
index 0000000000..c99d5ad6e1
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-095.md
@@ -0,0 +1,333 @@
+---
+id: 619d30350883802921bfcccc
+title: Step 95
+challengeType: 0
+dashedName: step-95
+---
+
+# --description--
+
+Now, you are going to use CSS animations to make the penguin wave.
+
+Define a new `@keyframes` named `wave`.
+
+# --hints--
+
+You should defined a new `@keyframes` rule.
+
+```js
+assert.notEmpty(new __helpers.CSSHelp(document).getCSSRules('keyframes'));
+```
+
+You should give the `@keyframes` rule a `name` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getCSSRules('keyframes')?.[0]?.name, 'wave');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+ border-radius: 30% 30% 30% 120%;
+ z-index: -1;
+}
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-096.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-096.md
new file mode 100644
index 0000000000..51c1d9464b
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-096.md
@@ -0,0 +1,345 @@
+---
+id: 619d324f5915c929f36ae91d
+title: Step 96
+challengeType: 0
+dashedName: step-96
+---
+
+# --description--
+
+Give `wave` four waypoints starting at `10%`, and incrementing by `10%`.
+
+# --hints--
+
+You should add a `10%` waypoint for `@keyframes wave`.
+
+```js
+assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].some(css => css?.keyText === '10%'));
+```
+
+You should add a `20%` waypoint for `@keyframes wave`.
+
+```js
+assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].some(css => css?.keyText === '20%'));
+```
+
+You should add a `30%` waypoint for `@keyframes wave`.
+
+```js
+assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].some(css => css?.keyText === '30%'));
+```
+
+You should add a `40%` waypoint for `@keyframes wave`.
+
+```js
+assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].some(css => css?.keyText === '40%'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+ border-radius: 30% 30% 30% 120%;
+ z-index: -1;
+}
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+--fcc-editable-region--
+@keyframes wave {
+
+}
+--fcc-editable-region--
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-097.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-097.md
new file mode 100644
index 0000000000..e2735f4030
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-097.md
@@ -0,0 +1,338 @@
+---
+id: 619d32c7fa21f32aaa91d499
+title: Step 97
+challengeType: 0
+dashedName: step-97
+---
+
+# --description--
+
+Within the first waypoint, rotate to `110deg`, and retain the scaling of the left arm.
+
+# --hints--
+
+You should give the `10%` waypoint a `transform` of `rotate(110deg) scaleX(-1)`.
+
+```js
+assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '10%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+ border-radius: 30% 30% 30% 120%;
+ z-index: -1;
+}
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+--fcc-editable-region--
+@keyframes wave {
+ 10% {
+
+ }
+ 20% {
+
+ }
+ 30% {
+
+ }
+ 40% {
+
+ }
+}
+--fcc-editable-region--
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-098.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-098.md
new file mode 100644
index 0000000000..37ec27193b
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-098.md
@@ -0,0 +1,338 @@
+---
+id: 619d333b738e3c2b5d58b095
+title: Step 98
+challengeType: 0
+dashedName: step-98
+---
+
+# --description--
+
+Within the second waypoint, rotate to `130deg`, and retain the scaling of the left arm.
+
+# --hints--
+
+You should give the `20%` waypoint a `transform` of `rotate(130deg) scaleX(-1)`.
+
+```js
+assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '20%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+ border-radius: 30% 30% 30% 120%;
+ z-index: -1;
+}
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+--fcc-editable-region--
+@keyframes wave {
+ 10% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 20% {
+
+ }
+ 30% {
+
+ }
+ 40% {
+
+ }
+}
+--fcc-editable-region--
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-099.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-099.md
new file mode 100644
index 0000000000..fb94505f58
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-099.md
@@ -0,0 +1,344 @@
+---
+id: 619d337765b9f02c10e93722
+title: Step 99
+challengeType: 0
+dashedName: step-99
+---
+
+# --description--
+
+For the third and fourth waypoints, repeat the `transform` pattern once more.
+
+# --hints--
+
+You should give the `30%` waypoint a `transform` of `rotate(110deg) scaleX(-1)`.
+
+```js
+assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '30%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(110deg)scaleX(-1)');
+```
+
+You should give the `40%` waypoint a `transform` of `rotate(130deg) scaleX(-1)`.
+
+```js
+assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].find(css => css?.keyText === '40%')?.style?.transform?.replace(/\s+/g, '') === 'rotate(130deg)scaleX(-1)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+ border-radius: 30% 30% 30% 120%;
+ z-index: -1;
+}
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+--fcc-editable-region--
+@keyframes wave {
+ 10% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 20% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+ 30% {
+
+ }
+ 40% {
+
+ }
+}
+--fcc-editable-region--
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-100.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-100.md
new file mode 100644
index 0000000000..c1df3afe42
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-100.md
@@ -0,0 +1,357 @@
+---
+id: 619d33c51140292cc5a21742
+title: Step 100
+challengeType: 0
+dashedName: step-100
+---
+
+# --description--
+
+Use the `wave` animation on the left arm. Have the animation last `3s`, infinitely iterate, and have a linear timing function.
+
+# --hints--
+
+You should give `.arm.left` an `animation-name` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left')?.animationName, 'wave');
+```
+
+You should give `.arm.left` an `animation-duration` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left')?.animationDuration, '3s');
+```
+
+You should give `.arm.left` an `animation-iteration-count` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left')?.animationIterationCount, 'infinite');
+```
+
+You should give `.arm.left` an `animation-timing-function` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left')?.animationTimingFunction, 'linear');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+ border-radius: 30% 30% 30% 120%;
+ z-index: -1;
+}
+
+--fcc-editable-region--
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+
+}
+--fcc-editable-region--
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+@keyframes wave {
+ 10% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 20% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+ 30% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 40% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+}
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-101.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-101.md
new file mode 100644
index 0000000000..3a06484e9d
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-101.md
@@ -0,0 +1,347 @@
+---
+id: 619d3482f505452d861d0f62
+title: Step 101
+challengeType: 0
+dashedName: step-101
+---
+
+# --description--
+
+Target the `.penguin` element when it is active, and increase its size by `50%` in both dimensions.
+
+# --hints--
+
+You should use the `.penguin:active` selector.
+
+```js
+assert.match(code, /\.penguin:active\s*\{/);
+```
+
+You should give `.penguin:active` a `transform` of `scale(1.5)`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin:active')?.getPropVal('transform', true), 'scale(1.5)');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+--fcc-editable-region--
+
+--fcc-editable-region--
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+ border-radius: 30% 30% 30% 120%;
+ z-index: -1;
+}
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+ animation: 3s linear infinite wave;
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+@keyframes wave {
+ 10% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 20% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+ 30% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 40% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+}
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-102.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-102.md
new file mode 100644
index 0000000000..1242dc798f
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-102.md
@@ -0,0 +1,346 @@
+---
+id: 619d3561a951bf2e41a24f10
+title: Step 102
+challengeType: 0
+dashedName: step-102
+---
+
+# --description--
+
+When you activate the `.penguin` element, it might look as though you can drag it around. This is not true.
+
+Indicate this to users, by giving the active element a `cursor` property of `not-allowed`.
+
+# --hints--
+
+You should give `.penguin:active` a `cursor` property of `not-allowed`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin:active')?.cursor, 'not-allowed');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+--fcc-editable-region--
+.penguin:active {
+ transform: scale(1.5);
+
+}
+--fcc-editable-region--
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+ border-radius: 30% 30% 30% 120%;
+ z-index: -1;
+}
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+ animation: 3s linear infinite wave;
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+@keyframes wave {
+ 10% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 20% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+ 30% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 40% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+}
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-103.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-103.md
new file mode 100644
index 0000000000..59d6a043fc
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-103.md
@@ -0,0 +1,357 @@
+---
+id: 619d36103839c82efa95dd34
+title: Step 103
+challengeType: 0
+dashedName: step-103
+---
+
+# --description--
+
+Change the `.penguin` element's `transition` behavior during transformation to have a duration of `1s`, a timing function of `ease-in-out`, and a delay of `0ms`.
+
+# --hints--
+
+You should give `.penguin` a `transition-duration` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin')?.transitionDuration, '1s');
+```
+
+You should give `.penguin` a `transition-timing-function` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin')?.transitionTimingFunction, 'ease-in-out');
+```
+
+You should give `.penguin` a `transition-delay` of `--fcc-expected--`, but found `--fcc-actual--`.
+
+```js
+assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin')?.transitionDelay, '0ms');
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+--fcc-editable-region--
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+
+}
+--fcc-editable-region--
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin:active {
+ transform: scale(1.5);
+ cursor: not-allowed;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+ border-radius: 30% 30% 30% 120%;
+ z-index: -1;
+}
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+ animation: 3s linear infinite wave;
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+@keyframes wave {
+ 10% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 20% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+ 30% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 40% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+}
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-104.md b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-104.md
new file mode 100644
index 0000000000..81e203fa55
--- /dev/null
+++ b/curriculum/challenges/english/01-responsive-web-design/learn-css-transforms-by-building-a-penguin/step-104.md
@@ -0,0 +1,670 @@
+---
+id: 619d3711d04d623000013e9e
+title: Step 104
+challengeType: 0
+dashedName: step-104
+---
+
+# --description--
+
+Finally, calculate the `height` of the `.ground` element to be the height of the viewport minus the height of the `.penguin` element.
+
+Congratulations! You have completed the Responsive Web Design certification.
+
+# --hints--
+
+You should give `.ground` a `height` of `calc(100vh - 300px)`.
+
+```js
+assert.include(['calc(100vh-300px)', 'calc(-300px+100vh)'], new __helpers.CSSHelp(document).getStyle('.ground')?.getPropVal('height', true));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+ transition: transform 1s ease-in-out 0ms;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin:active {
+ transform: scale(1.5);
+ cursor: not-allowed;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+ border-radius: 30% 30% 30% 120%;
+ z-index: -1;
+}
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+ animation: 3s linear infinite wave;
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+@keyframes wave {
+ 10% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 20% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+ 30% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 40% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+}
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+--fcc-editable-region--
+.ground {
+ width: 100vw;
+ height: 400px;
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+--fcc-editable-region--
+```
+
+# --solutions--
+
+```html
+
+
+
+
+
+ CSS Penguin
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```css
+:root {
+ --penguin-face: white;
+ --penguin-picorna: orange;
+ --penguin-skin: gray;
+}
+
+body {
+ background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: clip;
+}
+
+.left-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
+ position: absolute;
+ transform: skew(0deg, 44deg);
+ z-index: 2;
+ margin-top: 100px;
+}
+
+.back-mountain {
+ width: 300px;
+ height: 300px;
+ background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
+ position: absolute;
+ z-index: 1;
+ transform: rotate(45deg);
+ left: 110px;
+ top: 225px;
+}
+
+.sun {
+ width: 200px;
+ height: 200px;
+ background-color: yellow;
+ position: absolute;
+ border-radius: 50%;
+ top: -75px;
+ right: -75px;
+}
+
+.penguin {
+ width: 300px;
+ height: 300px;
+ margin: auto;
+ margin-top: 75px;
+ z-index: 4;
+ position: relative;
+ transition: transform 1s ease-in-out 0ms;
+}
+
+.penguin * {
+ position: absolute;
+}
+
+.penguin:active {
+ transform: scale(1.5);
+ cursor: not-allowed;
+}
+
+.penguin-head {
+ width: 50%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ var(--penguin-skin),
+ rgb(239, 240, 228)
+ );
+ border-radius: 70% 70% 65% 65%;
+ top: 10%;
+ left: 25%;
+ z-index: 1;
+}
+
+.face {
+ width: 60%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ border-radius: 70% 70% 60% 60%;
+ top: 15%;
+}
+
+.face.left {
+ left: 5%;
+}
+
+.face.right {
+ right: 5%;
+}
+
+.chin {
+ width: 90%;
+ height: 70%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: 5%;
+ border-radius: 70% 70% 100% 100%;
+}
+
+.eye {
+ width: 15%;
+ height: 17%;
+ background-color: black;
+ top: 45%;
+ border-radius: 50%;
+}
+
+.eye.left {
+ left: 25%;
+}
+
+.eye.right {
+ right: 25%;
+}
+
+.eye-lid {
+ width: 150%;
+ height: 100%;
+ background-color: var(--penguin-face);
+ top: 25%;
+ left: -23%;
+ border-radius: 50%;
+}
+
+.blush {
+ width: 15%;
+ height: 10%;
+ background-color: pink;
+ top: 65%;
+ border-radius: 50%;
+}
+
+.blush.left {
+ left: 15%;
+}
+
+.blush.right {
+ right: 15%;
+}
+
+.beak {
+ height: 10%;
+ background-color: var(--penguin-picorna);
+ border-radius: 50%;
+}
+
+.beak.top {
+ width: 20%;
+ top: 60%;
+ left: 40%;
+}
+
+.beak.bottom {
+ width: 16%;
+ top: 65%;
+ left: 42%;
+}
+
+.shirt {
+ font: bold 25px Helvetica, sans-serif;
+ top: 165px;
+ left: 127.5px;
+ z-index: 1;
+ color: #6a6969;
+}
+
+.shirt div {
+ font-weight: initial;
+ top: 22.5px;
+ left: 12px;
+}
+
+.penguin-body {
+ width: 53%;
+ height: 45%;
+ background: linear-gradient(
+ 45deg,
+ rgb(134, 133, 133) 0%,
+ rgb(234, 231, 231) 25%,
+ white 67%
+ );
+ border-radius: 80% 80% 100% 100%;
+ top: 40%;
+ left: 23.5%;
+}
+
+.penguin-body::before {
+ content: "";
+ position: absolute;
+ width: 50%;
+ height: 45%;
+ background-color: var(--penguin-skin);
+ top: 10%;
+ left: 25%;
+ border-radius: 0% 0% 100% 100%;
+ opacity: 70%;
+}
+
+.arm {
+ width: 30%;
+ height: 60%;
+ background: linear-gradient(
+ 90deg,
+ var(--penguin-skin),
+ rgb(209, 210, 199)
+ );
+ border-radius: 30% 30% 30% 120%;
+ z-index: -1;
+}
+
+.arm.left {
+ top: 35%;
+ left: 5%;
+ transform-origin: top left;
+ transform: rotate(130deg) scaleX(-1);
+ animation: 3s linear infinite wave;
+}
+
+.arm.right {
+ top: 0%;
+ right: -5%;
+ transform: rotate(-45deg);
+}
+
+@keyframes wave {
+ 10% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 20% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+ 30% {
+ transform: rotate(110deg) scaleX(-1);
+ }
+ 40% {
+ transform: rotate(130deg) scaleX(-1);
+ }
+}
+
+.foot {
+ width: 15%;
+ height: 30%;
+ background-color: var(--penguin-picorna);
+ top: 85%;
+ border-radius: 50%;
+ z-index: -1;
+}
+
+.foot.left {
+ left: 25%;
+ transform: rotate(80deg);
+}
+
+.foot.right {
+ right: 25%;
+ transform: rotate(-80deg);
+}
+
+.ground {
+ width: 100vw;
+ height: calc(100vh - 300px);
+ background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
+ z-index: 3;
+ position: absolute;
+ margin-top: -58px;
+}
+```
diff --git a/utils/preformatted-block-names.json b/utils/preformatted-block-names.json
index 7fda46a4d7..4ce3fc749d 100644
--- a/utils/preformatted-block-names.json
+++ b/utils/preformatted-block-names.json
@@ -27,9 +27,12 @@
"javascript-spreadsheet": "JavaScript Spreadsheet",
"intermediate-javascript-calorie-counter": "Intermediate JavaScript Calorie Counter",
"d3-dashboard": "D3 Dashboard",
- "learn-html-forms-by-building-a-registration-form": "Learn HTML Forms by Building a Registration Form",
+ "learn-accessibility-by-building-a-quiz": "Learn Accessibility by Building a Quiz",
+ "learn-css-animation-by-building-a-ferris-wheel": "Learn CSS Animation by Building a Ferris Wheel",
"learn-css-flexbox-by-building-a-photo-gallery": "Learn CSS Flexbox by Building a Photo Gallery",
"learn-css-grid-by-building-a-magazine": "Learn CSS Grid by Building a Magazine",
+ "learn-css-transforms-by-building-a-penguin": "Learn CSS Transforms by Building a Penguin",
+ "learn-html-forms-by-building-a-registration-form": "Learn HTML Forms by Building a Registration Form",
"learn-typography-by-building-a-nutrition-label": "Learn Typography by Building a Nutrition Label",
"learn-css-animation-by-building-a-ferris-wheel": "Learn CSS Animation by Building a Ferris Wheel",
"learn-accessibility-by-building-a-quiz": "Learn Accessibility by Building a Quiz",