title: Div Wider than Viewport
body: <p>I am currently coding a responsive menu using the checkbox hack and noticed that when my menu appears after clicking the hamburger icon, it is wider than the viewport. The menu has a fixed position and a flex display. I have added red borders around elements to give show this issue. Here is the relevant code:</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-css lang-css prettyprint-override"><code>/* General styles */
  html, body { height: 100%; }
  body {
    font-family: 'Miriam Libre', sans-serif;
  }
  a {
    color: white;
    text-decoration: none;
    transition: 0.2s;
  }
  a:hover {
    color: #ea3c53;
  }
  /* Navigation styles */
  nav {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background: #222222;
  }
  .donate {
    position: absolute;
    margin: 21px;
  }
  nav .brand {
    display: block;
    height: 70px;
    margin: 10px auto;
  }
  input[type=checkbox] {
    position: absolute;
    top: -9999px;
    left: -9999px;
  }
  nav label {
    position: absolute;
    top: 0;
    right: 0;
    padding: 21px;
    background: #63E2C6;
    cursor: pointer;
    z-index: 2;
  }
  nav &gt; label &gt; span {
    display: block;
    margin: 4px auto;
    height: 4px;
    width: 25px;
    border-radius: 1px;
    background: #ffffff;
    transition: 0.5s;
  }
  .menu {
    display: flex;
    position: fixed;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0;
    top: -100vh;
    left: 0;
    height: 100vh;
    width: 100%;
    background: #222;
    list-style-type: none;
    border: 1px solid red;
    transition: top 0.5s cubic-bezier(0.3, 0.1, 0.3, 0.85);
  }
  .menu li {
    font-size: 30px;
    border: 1px solid red;
  }
  input[type=checkbox]:checked ~ .menu {
    top: 0;
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;nav&gt;
      &lt;!-- Top bar --&gt;
      &lt;a href="link" target="_blank" class="donate"&gt;Donate&lt;/a&gt;
      &lt;img src="media/logo2.png" alt="Logo" class="brand"&gt;
      &lt;input type="checkbox" id="nav"&gt;
      &lt;label for="nav"&gt;
        &lt;span&gt;&lt;/span&gt;
        &lt;span&gt;&lt;/span&gt;
        &lt;span&gt;&lt;/span&gt;
      &lt;/label&gt;
      &lt;ul class="menu"&gt;
        &lt;li&gt;&lt;a href="#home"&gt;Home.&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#mission"&gt;Mission.&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#contact"&gt;Contact.&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/nav&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <p>So, my question is, why is this happening? After all, I do have the width set to 100%, not 110%.</p>