Index: header.php
===================================================================
--- header.php	(revision 411)
+++ header.php	(working copy)
@@ -22,6 +22,10 @@
 	if ( is_singular() && get_option( 'thread_comments' ) )
 		wp_enqueue_script( 'comment-reply' );
 
+	// Adds JavaScript for handling the navigation menu hide-and-show behavior to allow responsive menus.
+	wp_enqueue_script( 'wordcamp-base-navigation', get_template_directory_uri() . '/lib/navigation/navigation.js', array(), '1.0', true );
+
+
 	/* Always have wp_head() just before the closing </head>
 	 * tag of your theme, or you will break many plugins, which
 	 * generally use this hook to add elements to <head> such
Index: lib/navigation/navigation.js
===================================================================
--- lib/navigation/navigation.js	(revision 0)
+++ lib/navigation/navigation.js	(working copy)
@@ -0,0 +1,33 @@
+/**
+ * navigation.js
+ *
+ * Handles toggling the navigation menu for small screens.
+ */
+( function() {
+	var nav = document.getElementById( 'access' ), button, menu;
+	if ( ! nav )
+		return;
+	button = nav.getElementsByTagName( 'h3' )[0];
+	menu   = nav.getElementsByTagName( 'ul' )[0];
+	if ( ! button )
+		return;
+
+	// Hide button if menu is missing or empty.
+	if ( ! menu || ! menu.childNodes.length ) {
+		button.style.display = 'none';
+		return;
+	}
+
+	button.onclick = function() {
+		if ( -1 == menu.className.indexOf( 'menu' ) )
+			menu.className = 'menu';
+
+		if ( -1 != button.className.indexOf( 'toggled-on' ) ) {
+			button.className = button.className.replace( ' toggled-on', '' );
+			menu.className = menu.className.replace( ' toggled-on', '' );
+		} else {
+			button.className += ' toggled-on';
+			menu.className += ' toggled-on';
+		}
+	};
+} )();
\ No newline at end of file
Index: lib/navigation/navigation.js
===================================================================
--- lib/navigation/navigation.js	(revision 0)
+++ lib/navigation/navigation.js	(working copy)
@@ -0,0 +1,33 @@
+/**
+ * navigation.js
+ *
+ * Handles toggling the navigation menu for small screens.
+ */
+( function() {
+	var nav = document.getElementById( 'access' ), button, menu;
+	if ( ! nav )
+		return;
+	button = nav.getElementsByTagName( 'h3' )[0];
+	menu   = nav.getElementsByTagName( 'ul' )[0];
+	if ( ! button )
+		return;
+
+	// Hide button if menu is missing or empty.
+	if ( ! menu || ! menu.childNodes.length ) {
+		button.style.display = 'none';
+		return;
+	}
+
+	button.onclick = function() {
+		if ( -1 == menu.className.indexOf( 'menu' ) )
+			menu.className = 'menu';
+
+		if ( -1 != button.className.indexOf( 'toggled-on' ) ) {
+			button.className = button.className.replace( ' toggled-on', '' );
+			menu.className = menu.className.replace( ' toggled-on', '' );
+		} else {
+			button.className += ' toggled-on';
+			menu.className += ' toggled-on';
+		}
+	};
+} )();
\ No newline at end of file
Index: lib/structure/class-wcb-menu.php
===================================================================
--- lib/structure/class-wcb-menu.php	(revision 411)
+++ lib/structure/class-wcb-menu.php	(working copy)
@@ -8,6 +8,8 @@
 	function content() { ?>
 		<div id="<?php echo $this->get_id(); ?>" class="grid_12">
 			<div id="access" role="navigation" class="clearfix">
+				<?php /* Menu toggle element for responsive menus - hidden by default CSS */ ?>
+				<h3 class="menu-toggle"><?php _e( 'Menu', 'wordcampbase' ); ?></h3>
 				<?php /*  Allow screen readers / text browsers to skip the navigation menu and get right to the good stuff */ ?>
 				<div class="skip-link screen-reader-text"><a href="#content" title="<?php esc_attr_e( 'Skip to content', 'wordcampbase' ); ?>"><?php _e( 'Skip to content', 'wordcampbase' ); ?></a></div>
 				<?php /* Our navigation menu.  If one isn't filled out, wp_nav_menu falls back to wp_page_menu.  The menu assiged to the primary position is the one used.  If none is assigned, the menu with the lowest ID is used.  */ ?>
Index: style.css
===================================================================
--- style.css	(revision 411)
+++ style.css	(working copy)
@@ -375,6 +375,10 @@
 	margin: 0 auto;
 	width: 940px;
 }
+/* Hide the responsive menu toggle - maintain backwards compatibility */
+#access .menu-toggle {
+	display: none;
+}
 #access .menu-header,
 div.menu {
 	font-size: 13px;
