body {
	font-family: "Courier New", "Helvetica Neue";
	font-size: 13px;
	margin: 0;
	line-height: 1.4em;
	overflow: hidden;
}

.yellow_highlight { background-color: #ffb; }
.blue_highlight { background-color: #50B8EB; color: #fff; }
.fl { float: left; }
.fr { float: right; }
h1 { margin: 0; font-size: 3em; }

#slide_pager {
    display: none;
    z-index: 5;
    position: absolute;
    bottom: 15px;
    right: 0;
    margin: 0;
    width: 100px;
    padding: 0 10px 0 0;
    color: #888;
    text-align: right;
    font-weight: bold;
    background-color: #fff;
    line-height: 1em;
}
    .is_ios #slide_pager { width: 65px; padding: 0 15px 0 0; }
    
    #slide_pager .pages {
        float: left;
        padding: 8px 5px;
    }
    
    #slide_pager .current {
        color: #000;
    }
    
    #slide_pager .total {
        color: #666;
    }
    
    #slide_pager a {
        display: block;
        float: left;
        text-decoration: none;
        padding: 8px 6px;
        color: #000;
    }
    .is_ios #slide_pager a { display: none; }
    
    #slide_pager a:hover {
        background-color: #EEE;
        color: #000;
    }
    
    #slide_pager a.disabled, #slide_pager a.disabled:hover {
        color: #ddd;
        background-color: #fff;
    }
    
    #slide_pager a.home {
        display: none;
        position: absolute;
        text-align: center;
        background: #fff;
    }

#projects_drawer {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
}
    
    .drawer_slidedown {
        -webkit-transform: translate3d(0, 1000px, 0);
    }

    #projects_drawer ul {
    	list-style-type: none;
    	margin: 0;
    	background-color: #fff;
    	-webkit-box-shadow: 0 0 8px rgba(0,0,0,0.3);
    	-moz-box-shadow: 0 0 8px rgba(0,0,0,0.3);
    	box-shadow: 0 0 8px rgba(0,0,0,0.3);
        color: #999;
        overflow: hidden;
        padding: 20px;
    }

    #projects_drawer li {
    	float: left;
    	margin: 0 20px 20px 0;
    }
    
    #projects_drawer li.current .name {
        color: #333;
        background-color: #ffb;
    }
    
    #projects_drawer li a {
        color: #666;
        text-decoration: none;
        display: block;
    }
    
    .is_browser #projects_drawer li a:hover .name {
        color: #fff;
        background-color: #50B8EB;
    }

#contact {
    position: absolute;
    top: 0px;
    right: 60px;
    z-index: 5;
    margin: 0;
    text-align: center;
}

    #contact a {
        display: block;
        width: 25px;
        height: 25px;
        line-height: 1em;
        background-position: center;
        background-repeat: no-repeat;
        background-color: #ffb;
        -webkit-box-shadow: 0 0 8px rgba(0,0,0,0.3);
    	-moz-box-shadow: 0 0 8px rgba(0,0,0,0.3);
    	box-shadow: 0 0 8px rgba(0,0,0,0.3);
        color: #000;
        text-decoration: none;
    }
    
    #contact a:hover {
        background-color: #eee;
    }
    
    #contact img {
        margin-top: 5px;
    }

#drawer_switch {
    position: absolute;
    top: 0px;
    right: 30px;
    z-index: 4;
    margin: 0;
}

    #drawer_switch a {
        display: block;
        width: 25px;
        height: 25px;
        line-height: 1em;
        background-position: center;
        background-repeat: no-repeat;
        background-color: #ffb;
        -webkit-box-shadow: 0 0 8px rgba(0,0,0,0.3);
    	-moz-box-shadow: 0 0 8px rgba(0,0,0,0.3);
    	box-shadow: 0 0 8px rgba(0,0,0,0.3);
        color: #000;
        text-decoration: none;
    }
    
    #drawer_switch a:hover {
        background-color: #eee;
    }
    
    #drawer_switch a.open {
        background-image: url('../img/icons/black/br_up.png');
    }
    
    #drawer_switch a span, #drawer_switch a.open span {
        display: none;
    }
    
    #drawer_switch a.closed {
        background-image: url('../img/icons/black/2x2_grid.png');
    }

#container {
    display: none;
}

.is_browser #container {
    height: 300px;
    width: 900px;
    overflow: hidden;
    z-index: 1;
}

    .is_browser #container .handle {
        width: 3600px;
        height: 600px;
    }

.is_browser .slide {
    position: relative;
    float: left;
    width: 900px;
    height: 600px;
}

.is_ios #container {
    position: absolute;
    top: 0;
    left: 0;
    width: auto;
    height: 100%;
    white-space: nowrap;
}

.is_ios .slide {
    float: left;
    height: 100%;
    white-space: normal;
}

.scroll {
    width: 100%;
    height: 100%;
}

    .scroll .pull {
        margin-top: -70px;
        height: 68px;
        border-top: 1px dashed #50B8EB;
        border-bottom: 1px dashed #50B8EB;
    }

    .scroll .pull p {
        margin: 0;
        text-align: center;
        line-height: 70px;
        color: #000;
        font-size: 14px;
    }

.scrollable {
    -webkit-backface-visibility: hidden;
    -webkit-transform:translate3d(0,0,0);
}

.content {
    padding: 50px 80px;
}

    .content dt {
    	font-weight: bold;
    }

    .content dd {
    	padding-bottom: 10px;
    }


/*
    Main
*/

#main {
    text-align: center;
    background-color: #ffffff;
    background: #fff url(../img/keys.jpg) 50% 97% no-repeat;
}

.no_js #main, .is_ios #main {
    background: #fff;
}

#main .top {
     position: absolute;
     z-index: 1;
}

.is_ios #main .top {
    position: relative;
}

.no_js #main .top {
    position: relative;
    margin-top: 50px;
}

#main .scroll {
    position: relative;
    z-index: 3;
}

#main .content {
    padding: 0;
    overflow: hidden;
}

#main .drag {
    position: absolute;
    top: 50%;
    right: 0;
    margin: 0 15px 0 0;
    color: red;
    background: #fff url(../img/arrow.jpg) 0% 50% no-repeat;
    padding-left: 15px;
    line-height: 1em;
    z-index: 4;
}

#main h1 {
    color: #000;
    font-size: 47px;
    letter-spacing: -0.07em;
    line-height: 0.7em;
    font-weight: normal;
    position: relative;
    z-index: 2;
}

#main .tagline {
    margin: 10px 0;
    font-size: 1.2em;
    line-height: 1.5em;
    color: #666;
}

#steps {
    position: absolute;
    padding: 0;
    width: 438px;
}

.no_js #steps {
    position: relative;
    margin: -40px auto 0 auto;
}

.is_ios #steps {
    position: relative;
    margin: 0 auto;
}

#steps li {
    display: block;
    float: left;
    width: 106px;
    height: 106px;
    margin: 15px 20px;
    padding: 0;
    position: relative;
}

#steps li a {
    display: block;
    width: 106px;
    height: 106px;
    color: #888;
    text-decoration: none;
    position: absolute;
    z-index: 3;
}

.no_canvas #steps li a, .no_js #steps li a {
    -moz-border-radius: 47px;
    -webkit-border-radius: 47px;
    border-radius: 47px;
    width: 100px;
    height: 100px;
    background-color: #fff;
    border: 3px solid #ddd;
}

#steps li a span {
    display: block;
    margin-top: 22%;
    font-size: 2.5em;
    line-height: 1em;
}

#steps li a:hover {
    color: #fff;
}

.is_ios #steps li a:hover {
    color: red;
}

.no_canvas #steps li a:hover, .no_js #steps li a:hover {
    background-color: red;
    border-color: red;
}

.slide .content, .slide .project {
    position: relative;
    z-index: 1;
}

#bodies {
    z-index: 2;
}

#main_canvas, #fun_canvas, #text_canvas, #bodies {
    position: absolute;
    top: 0;
    left: 0;
}


/*
    About
*/

#about {
    background-color: #eee;
}

#about .content {
    padding: 40px 40px;
}

#about h1 {
    margin-bottom: 15px;
    color: #50B8EB;
}
#about .story { padding: 20px 0; }
#about .story ul { margin:0; padding: 0; }
#about .story li {
    display: block;
    float: left;
    padding: 4px 6px;
    background-color: #fff;
    margin: 0 3px 3px 0;
    font-size: .9em;
    color: #666;
}
.story span.grumble {
    display: none;
    width:100px;
    height: 100px;
    text-align: center;
    margin-top: -82px;
    margin-left: 5px;
    line-height: 1.3em;
    }
.story span.grumble span { display: table; }
.story span.grumble em {
    display: table-cell;
    vertical-align: middle;
    width: 100px;
    height: 100px;
    color: #fff;
    font-size: 1em;
    font-style: normal;
    padding: 0 10px; 
    }
.ie .story span.grumble em { display: inline-block; }

#about .story li.highlight { background-color: #ffd; color: #000; }
#about .story li.incomplete { background-color: #fff; color: #000; font-weight: bold; }
#about .story li:after {
    content: " >";
}

#about .clients {
    margin-left: 125px;
    margin-right: 5%;
    position: relative;
    left: 5%;
}

    #about .clients ul { margin: 0; padding: 0; }
    #about .clients li {
        padding: 0;
        float: left;
        display: block;
        width: 50%;
        }

#about .clients h2 { margin: 0 0 15px 0; }
#about .clients p { margin: 0; }

#about div.random {
    width: 30%;
    float: left;
}

#about div.random ul {
    margin: 0;
    padding: 0;
    list-style: none;
    padding-right: 30px;
}

#about div.random li {
    padding: 3px;
    margin: 0 0 3px 0;
    color: #444;
    background: #e0e0e0;
}

#about .info {
    margin: 0;
    color: #000;
    margin-right: 30px;
    padding-top: 4px;
    font-size: .9em;
    width: 125px;
    text-align: right;
}
    
    #about .info strong { text-decoration: underline; }
    #about .info a { text-decoration: none; color: #000; }
    #about .info a:hover { text-decoration: underline; color: #000; }
    
    #about .info .contact { display: block; padding: 5px 5px 3px 5px; line-height: 1.4em; background-color: #000; color: #fff; }
    #about .info .contact a { color: #fff; }

#about div.left {
    width: 48%;
    margin-right: 2%;
    float: left;
}

#about div.right {
    width: 40%;
    float: left;
}

#about dl {
    overflow: auto;
}

#about dt {
    display: inline;
}

#about .languages dt {
    background: #ffb;
}

#about dd {
    padding: 0;
    margin: 0 0 10px 0;
}


/*
    Projects
*/

#projects .content {
	overflow: hidden;
	padding: 30px 50px;
}

#projects h3 {
	margin-top: 0;
}

#projects ul {
	list-style-type: none;
	margin: 0;
	padding: 0;
}

#projects li {
	float: left;
	margin: 0 20px 20px 0;
	color: #333;
}

#projects li a {
    text-decoration: none;
    color: darkblue;
    display: block;
}

.is_browser #projects li a:hover .name {
    color: #fff;
    background-color: #50B8EB;
}

.project {
    padding: 40px 50px 50px 50px;
    width: 920px;
    overflow: hidden;
}

    .is_portrait .project {
        width: auto;
    }

.project div.details {
    float: left;
	width: 300px;
	margin-right: 20px;
}
    
    .is_portrait .project div.details {
        float: none;
        width: auto;
        margin: 0 0 20px 0;
        padding-bottom: 10px;
        border-bottom: 1px solid #ccc;
    }

.project div h2 {
	margin: 0;
	font-size: 2em;
	line-height: 1.5em;
}

.project div dt {
	font-weight: bold;
	font-size: 14px;
}
    
    .is_ios .project div dt {
        font-size: 15px;
    }
    
.project div dd {
	color: #666;
	font-size: 11px;
	padding: 0;
	margin: 0;
	line-height: 1.3em;
}
    
    .is_ios div dd {
        font-size: 12.5px;
    }

.project .media {
    width: 600px;
    float: left;
}

.browser {
    background: url('../img/projects/browser.jpg') top left no-repeat;
    -webkit-box-shadow: 0 0 8px rgba(0,0,0,0.3); -moz-box-shadow: 0 0 8px rgba(0,0,0,0.3); box-shadow: 0 0 8px rgba(0,0,0,0.3);
}

.browser p {
    padding: 33px 0 7px 0;
    margin: 0;
    line-height: 0;
    background: url('../img/projects/browser.jpg') bottom left no-repeat;
}

/* Slide Themes */
.dark { background-color: #222; }
.dark h2 { color: #aeaeae; }
.dark div dt { color: #7587a6; }
.dark div dd { color: #9b859d; }
.dark a { color : #8f9d6a; }

.katy { background-color: #f1f1f1; }
.katy h2 { color: #5d90cd; }
.katy div dt { color: #c03030; }
.katy div dd { color: #000; }
.katy a { color : #c03030; }

.kansas { background-color: #fff; }
.kansas h2 { color: #000; }
.kansas div dt { color: #c03030; }
.kansas div dd { color: #000; }
.kansas a { color : #c03030; }

.light { background-color: #fff; }
.light h2 { color: #000; }
.light div dt { color: #a535ae; }
.light div dd { color: #000; }
.light a { color : #000; }

.night { background-color: #222; }
.night h2, .night div dt { color: #7587a6; }
.night div dd { color: #777; }
.night a { color : #8f9d6a; }

/* DragDealer */

.dragdealer {
        position: relative;
        height: 500px;
        background: #FFF;
}
.dragdealer .handle {
        position: absolute;
        cursor: pointer;
}
.dragdealer .red-bar {
        width: 100px;
        height: 30px;
        background: #CC0000;
        color: #FFF;
        line-height: 30px;
        text-align: center;
}
.dragdealer .disabled {
        background: #898989;
}

/* jScrollPane */

.jspContainer
{
	overflow: hidden;
	position: relative;
}

.jspPane
{
	position: absolute;
}

.jspVerticalBar
{
	position: absolute;
	top: 0;
	right: 0;
	width: 10px;
	height: 100%;
}

.jspHorizontalBar
{
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 10px;
}

.jspVerticalBar *,
.jspHorizontalBar *
{
	margin: 0;
	padding: 0;
}

.jspCap
{
	display: none;
}

.jspHorizontalBar .jspCap
{
	float: left;
}

.jspTrack
{
	position: relative;
}

.jspDrag
{
	background: #666;
	position: relative;
	top: 0;
	left: 0;
	cursor: pointer;
}

.jspHorizontalBar .jspTrack,
.jspHorizontalBar .jspDrag
{
	float: left;
	height: 100%;
}

.jspArrow
{
	background: #50506d;
	text-indent: -20000px;
	display: block;
	cursor: pointer;
}

.jspArrow.jspDisabled
{
	cursor: default;
	background: #80808d;
}

.jspVerticalBar .jspArrow
{
	height: 16px;
}

.jspHorizontalBar .jspArrow
{
	width: 16px;
	float: left;
	height: 100%;
}

.jspVerticalBar .jspArrow:focus
{
	outline: none;
}

.jspCorner
{
	background: #eeeef4;
	float: left;
	height: 100%;
}

/* Yuk! CSS Hack for IE6 3 pixel bug :( */
* html .jspCorner
{
	margin: 0 -3px 0 0;
}

img { border: 0; }
.hidden { display: none; }
.clear { clear: both; }

.clearfix:after {
        visibility: hidden;
        display: block;
        content: "";
        clear: both;
        height: 0;
        }
* html .clearfix             { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */

/* Grumble */
.grumble{
    position:absolute;
    background-image: url(../img/bubble-sprite.png);
    background-repeat: no-repeat;
    z-index: 99999;
    }

    .grumble-text {
        position:absolute;
        text-align:center;
        z-index: 99999;
        display: table;
        overflow:hidden;
        font-size: 14px;
        line-height: 14px;
        }
        .ie6 .grumble-text {
            display:block;
            }
        .grumble-text .outer {
            display: table-cell;
            vertical-align: middle;
            color:white;
            }
            .ie6 .grumble-text .outer {
                display: block;
                position: absolute;
                top: 48%;
                left: 0;
                }
        .ie6 .inner {
            position: relative;
            top: -50%
            }

    .grumble-text50 .outer{padding:6px;}
    .grumble-text100 .outer{padding:8px;}
    .grumble-text150 .outer{padding:10px;}
    .grumble-text200 .outer{padding:12px;}

    .grumble50 {background-position: 0 0;}
    .grumble100 {background-position: 0 -50px; }
    .grumble150 {background-position: 0 -150px;}
    .grumble200 {background-position: 0 -300px; }

    .alt-grumble50 {background-position: -200px 0;}
    .alt-grumble100 { background-position: -200px -50px; }
    .alt-grumble50 {background-position: -200px -150px;}
    .alt-grumble200 {background-position: -200px -300px; }

    .grumble-button {
        position: absolute;
        width: 20px;
        height: 12px;

        -moz-border-radius: 3px;
        border-radius: 3px;

        background: #FF5C00;
        color: #fff;
        text-align:center;
        font-size: .8em;
        line-height: .9em;

        -moz-box-shadow: 1px 1px 1px #ccc;
        -webkit-box-shadow: 1px 1px 1px #ccc;
        box-shadow: 1px 1px 1px #ccc;

        cursor: pointer;

        z-index: 99999;
        }

/* tipsy */

.tipsy { font-size: .9em; position: absolute; padding: 5px; z-index: 100000; }
  .tipsy-inner { background-color: #000; color: #FFF; max-width: 200px; padding: 5px 8px 4px 8px; text-align: center; }

  /* Rounded corners */
  .tipsy-inner { border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; }
  
  /* Uncomment for shadow */
  /*.tipsy-inner { box-shadow: 0 0 5px #000000; -webkit-box-shadow: 0 0 5px #000000; -moz-box-shadow: 0 0 5px #000000; }*/
  
  .tipsy-arrow { position: absolute; width: 0; height: 0; border: 5px solid transparent; }
  
  /* Rules to colour arrows */
  .tipsy-arrow-n { border-bottom-color: #000; }
  .tipsy-arrow-s { border-top-color: #000; }
  .tipsy-arrow-e { border-left-color: #000; }
  .tipsy-arrow-w { border-right-color: #000; }
  
  .tipsy-n .tipsy-arrow, .tipsy-nw .tipsy-arrow, .tipsy-ne .tipsy-arrow { top: 0; border-top: none; }
  .tipsy-s .tipsy-arrow, .tipsy-sw .tipsy-arrow, .tipsy-se .tipsy-arrow { bottom: 0; border-bottom: none; }
  .tipsy-n .tipsy-arrow, .tipsy-s .tipsy-arrow { left: 50%; margin-left: -5px; }
  .tipsy-nw .tipsy-arrow, .tipsy-sw .tipsy-arrow { left: 10px; }
  .tipsy-ne .tipsy-arrow, .tipsy-se .tipsy-arrow { right: 10px; }
  .tipsy-e .tipsy-arrow, .tipsy-w .tipsy-arrow { top: 50%; margin-top: -5px; }
  .tipsy-e .tipsy-arrow { right: 0; border-right: none; }
  .tipsy-w .tipsy-arrow { left: 0; border-left: none; }
  .tipsy-n, .tipsy-ne { margin-top: 5px; }

/* no javascript */

.no_js body { overflow: auto; }
.no_js #container { display: block; overflow: hidden; }
.no_js #main_canvas, .no_js .media img, .no_js .media .browser, .no_js #projects_drawer,
.no_js #drawer_switch, .no_js #contact, .no_js #main .drag { display: none; }
.no_js .media noscript img, .no_js .media noscript .browser, .no_js { display: block; }
.no_js #main .content { padding :40px; }
.no_js .slide { border-bottom: 1px solid #CCC;}