:root {
  --color: 10, 95%, 60%;
  --fg: hsl(var(--color));
  --bg: hsla(var(--color), .5);
}
@media (min-width: 600px) { :root { --color: 80, 70%, 40%; } }
@media (min-width: 800px) { :root { --color: 200, 80%, 40%; } }
@media (min-width: 1000px) { :root { --color: 270, 70%, 50%; } }

html {
  font-size: 10px;
}

body {
  margin: 0;
  opacity: 1;
  font: 16px/1.4 Trebuchet MS, Arial, sans-serif;
  box-shadow: inset 0 3px 7px 0 hsla(0, 0%, 0%, .4);
}

p:last-of-type { margin-bottom: 0; }

/* LINKS
--------------------------------------------- */

a:link,
a:visited { color: var(--fg); }
a:hover { text-decoration: none; }

/* MARK
--------------------------------------------- */

MARK {
  position: relative;
  background-color: var(--bg);
}

MARK:before,
MARK:after {
  content: '';
  position: absolute;
  top: 0;
  width: .55em;
  height: 100%;
}

MARK:before {
  left: -.55em;
  background: linear-gradient(to right bottom,
     transparent 50%, var(--bg) 50%);
}

MARK:after {
  right: -.55em;
  background: linear-gradient(to left top,
     transparent 50%, var(--bg) 50%);
}


/* LISTS
--------------------------------------------- */

ol { padding-left: 1.2em; }
li { margin-bottom: 1.5rem; }

.visually-hidden {
  position: absolute;

  width: 1px;
  height: 1px;
  margin: -1px;
  border: 0;
  padding: 0;

  clip: rect(0 0 0 0);
  overflow: hidden;
}

/* CODES
--------------------------------------------- */

.code { font-size: 1rem; }
.code--inline {
  display: inline-block;
  padding: .2rem .5rem;
  background: #DDD;
  border-radius: 5px;
  font-size: 1rem;
}

.code__comment {
  font-style: italic;
  color: #777;
}

pre {
  overflow: auto;
  padding: .5rem;
  border-radius: 5px;
  background: hsl(0, 0%, 92%);
}

@media ( min-width: 600px ) { pre { font-size: 1.2rem; } }

/* HEADERS
--------------------------------------------- */

h2:first-child { margin-top: 0; }

/* LAYOUT
--------------------------------------------- */

.page-wrapper {
  max-width: 100%;
  padding: 3rem 1.5rem;
  box-sizing: border-box;
  background: #FFF;
  box-shadow: 0 3px 7px 3px hsla(0, 0%, 0%, .4);
  transition: all 1s;
}

@media ( min-width: 600px ) {
  .page-wrapper { padding: 3rem 2rem; }
}

@media ( min-width: 800px ) {
  .page-wrapper {
    margin-left: 2rem;
    margin-right: 2rem;
  }
}

@media ( min-width: 1000px ) {
  .page-wrapper {
    max-width: 950px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* HEADER
--------------------------------------------- */

.page-header {
  position: relative;
  margin-bottom: 3rem;
  box-sizing: border-box;
  text-align: center;
}

/* Hides thin transparent lines on the edges of the logo */
.page-header::after {
  content: '';
  display: block;
  position: absolute;
  top: 2px;
  right: 2px;
  bottom: 2px;
  left: 2px;
  outline: 3px solid white;
  pointer-events: none;
}

@media ( min-width: 500px ) { .page-header { margin-bottom: 3rem; } }
@media ( min-width: 800px ) { .page-header { margin-bottom: 5rem; } }

.page-header__logo {
  display: block;
  width: 100%;
  font-size: 14rem;
  font-weight: 800;
  font-family: 'Work Sans', sans-serif;
}

/* CONTAINER
--------------------------------------------- */

.page-container { margin: 0 auto; }

@media ( min-width: 600px ) {
  .page-container {
    margin-right: 1rem;
    margin-left: 1rem;
  }
}

@media ( min-width: 800px ) { .page-container { flex-direction: row; } }

/* MAIN
--------------------------------------------- */

.page-main {
  display: flex;
  justify-content: space-between;
  flex-direction: column;
}

@media ( min-width: 800px ) {
  .page-main {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

.section:first-child { margin-bottom: 7rem; }
.section:last-child { margin-bottom: 0; }

@media ( min-width: 800px ) {
  .section {
    flex-basis: 47%;
    margin-bottom: 3rem;
  }
  .section--how-use {
    flex-basis: 100%;
  }
}

.section__title {
  margin-bottom: 1em;
  display: flex;
  align-items: center;
  font-size: 1.2em;
  line-height: 1.2;
}

.section__title::after {
  content: '';
  flex-shrink: 0;
  flex-grow: 1;
  height: 14px;
  margin-left: 1rem;
  background: #EEE;
  background: radial-gradient(circle at center, #333 10%, transparent 40%) 0 1px;
  background-size: 6px 6px;
}

@media ( min-width: 600px ) {
  .section__title::after {
    height: 20px;
    margin-left: 1.5rem;
  }
}

@media ( min-width: 800px ) {
  .section__title {
    font-size: 1.4em;
  }
  .section__title::after {
    height: 26px;
  }
}

/* STICKY POINT
--------------------------------------------- */

.sticky-container {
  width: 100%;
}

.sticky-container--filled:after {
  content: 'Click "On" and try it in action!';
  display: block;
  min-height: 1rem;
  overflow: hidden;
  margin-top: 1rem;
}

.sticky-point {
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: inset 0 3px 7px 3px hsla(0, 0%, 0%, .3);
  border-radius: 10px;
  transition: all .1s;
  text-align: center;
}

.sticky-container--filled .sticky-point {
  min-height: 65px;
  margin-top: 1rem;
}

.sticky-container--collapse .sticky-point {
  animation: collapse-point 1s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  animation-fill-mode: forwards;
}

.sticky-container--collapse:after {
  animation: collapse-text .5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  animation-fill-mode: forwards;
}

.sticky-point .controls-panel {
  position: static;
  margin: 1rem auto;
}

@keyframes collapse-point {
  50% { min-height: 10px; }
  100% {
    min-height: 0;
    margin-top: 0;
    margin-left: 50%;
    margin-right: 50%;
  }
}

@keyframes collapse-text {
  50% { min-height: 10px; }
  100% {
    min-height: 0;
    margin-top: 0;
    opacity: 0;
    font-size: 0;
  }
}

/* FOOTER
--------------------------------------------- */

.page-footer {
  margin-top: 2rem;
}

.page-footer::before {
  content: '';
  display: block;
  height: 2rem;
  margin-bottom: 2rem;
  border-radius: 10px;
}

.page-footer__links {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  font-size: .9em;
}

/* BACKGROUNDS
--------------------------------------------- */

body,
.page-header__logo,
.page-footer::before,
.sticky-point {
  background: lemonchiffon;
  background-image:
    linear-gradient(to right, hsla(350, 100%, 50%, .3) 50%, transparent 50%),
    linear-gradient(to right, hsla(300, 100%, 50%, .3) 50%, transparent 50%),
    linear-gradient(to right, hsla(270, 100%, 50%, .3) 50%, transparent 50%),
    linear-gradient(to right, hsla(250, 100%, 50%, .3) 50%, transparent 50%),
    linear-gradient(to right, hsla(190, 100%, 50%, .3) 50%, transparent 50%),
    linear-gradient(to right, hsla(120, 100%, 50%, .3) 50%, transparent 50%),
    linear-gradient(to right, hsla(50, 100%, 50%, .3) 50%, transparent 50%),
    linear-gradient(to right, hsla(0, 100%, 50%, .3) 50%, transparent 50%);
  background-size:
    7% 100%,
    11% 100%,
    13% 100%,
    17% 100%,
    23% 100%,
    29% 100%,
    31% 100%,
    37% 100%;
  background-position:
    11rem 0,
    -11rem 0,
    21rem 0,
    -21rem 0,
    29rem 0,
    -29rem 0,
    31rem 0,
    -31rem 0;
    background-attachment: fixed;
}

.page-footer::before,
.sticky-point { box-shadow: inset 0 3px 7px 3px hsla(0, 0%, 0%, .4); }
