/*
 *  (c) 2000-2014 deviantART, Inc. All rights reserved.
 */
body#da-portfolio {
    font-size: 100%;
    background: white;
}

.portfolio-light #portfolio-thumbstrip a.selected img {
    outline: 4px solid black;
}
.portfolio-light #portfolio-gallery .description h3 {
    font-weight:normal;
    color: #333;
}
.portfolio-light #portfolio-gallery .description p {
    color: #666;
}
#portfolio.portfolio-horizontal #portfolio-menu {
    margin-bottom: 0px;
}
.portfolio-light #portfolio-thumbstrip-holder {
    position:relative;
    top:-18px;
}
.portfolio-light #portfolio-thumbstrip .left,
.portfolio-light #portfolio-thumbstrip .right {
    margin-top:32px;
}

.portfolio-light #portfolio-thumbstrip .disabled .arrow-thumb {
    display: none;
}

#portfolio.portfolio-horizontal #portfolio-thumbstrip {
    margin-bottom:0px;
}
.portfolio-horizontal #portfolio-menu h1 {
    margin:0.9em 10px 0px 0px !important;
    height: 1.3em;
    overflow:hidden;
}
#portfolio.portfolio-horizontal #portfolio-menu .links a {
    margin: 0 25px 0 0;
}

.portfolio-light #portfolio-menu a.active {
    color:black;
}
.portfolio-light #portfolio-menu h2 {
    color:#666 !important;
    margin-left: 2px;
}
/*
.portfolio-bottom #portfolio-gallery {
    top: 118px;
}
*/
#portfolio-image-copyright {
    color: #ccc;
}

#portfolio-image-fullsizex .darkfolio {
    display: none;
}

#portfolio-image-fullsizex .lightfolio {
    display: inline;
}

#portfolio-image-holder.loading {
    
    background-image: url(/portfolio/loading-lightfolio.gif);
    background-position: center center;
    background-repeat: no-repeat;
    
}


#portfolio-fullview-title {
    background-color: #cccccc;
    color: #333333;
}

#portfolio-poweredby {
    background-image: url(/portfolio/poweredbyda2014-white.png);
    width:87px;
    height:25px;
}

/****
    ABOUT
*/
.portfolio-about #portfolio-menu a.active {
    border-bottom-color: #DCDCDC !important;
}

.portfolio-horizontal .portfolio-about-resume {
    background-image: url(/portfolio/lightfolio-horizontal-resume.gif);
}


.portfolio-vertical .portfolio-about-resume {
    background-image: url(/portfolio/lightfolio-vertical-resume.png);
}

.portfolio-about #portfolio-about .biobox {
    color: #999;
}





/***** 
    DESCRIPTION
*/

#portfolio-image-description {
    background-position: 0px -120px;
}

#portfolio-image-descriptiontext {
    margin: 13px 10px;
    color: #333;
}

#portfolio-image-descriptionx {
    background-position:-295px -121px;
}

#portfolio-image-descriptionx:hover {
    background-position:-295px -134px;
}

#portfolio-image-title img.darkfolio {
    display: none;
}

#portfolio-image-title img.lightfolio {
    cursor: pointer;
}

.portfolio-light .at {
    background-image: url(/portfolio/lightfolio-ats-2.png);
}

.portfolio-light .at .ie {
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/portfolio/lightfolio-ats-2.png', sizingMethod='image');
}

a.copyright-notice {
    color: #ddd;
}

/* Helper mixins */
.colormixin(@color:false) when not (@color=false) {color: @color;}
.bgcolormixin(@color:false) when not (@color=false) {background-color: @color;}
.bordercolormixin(@color:false) when not (@color=false) {border-color: @color;}

.widthmixin(@width:false) when not (@width=false) {width: @width;}
.minwidthmixin(@width:false) when not (@width=false) {min-width: @width;}
.maxwidthmixin(@width:false) when not (@width=false) {max-width: @width;}

.heightmixin(@height:false) when not (@height=false) {height: @height;}
.minheightmixin(@height:false) when not (@height=false) {min-height: @height;}
.maxheightmixin(@height:false) when not (@height=false) {max-height: @height;}

/* Helper variable for retina media queries */
@retina : ~"(-webkit-min-device-pixel-ratio: 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 2dppx), (min-resolution: 192dpi)";

/*
 * helper function for .linear-gradient
 * see http://blog.philipbrown.id.au/2012/09/base64-encoded-svg-gradient-backgrounds-in-less/ 
 * @encode - string of svg xml
 */
.base64DataUriBackground (@encode, @type: ~"image/svg+xml") {
    @dataUriPrefix: ~"url(data:@{type};base64,";
    @dataUriSuffix: ~")";
 
    // because our lessc doesn't give access to btoa()
    // we have to make our own
    @b64DataUri: ~`(function(a,b,c){function e(a){a=a.replace(/\r\n/g,'\n');var b='';for(var c=0;c<a.length;c++){var d=a.charCodeAt(c);if(d<128){b+=String.fromCharCode(d)}else if(d>127&&d<2048){b+=String.fromCharCode(d>>6|192);b+=String.fromCharCode(d&63|128)}else{b+=String.fromCharCode(d>>12|224);b+=String.fromCharCode(d>>6&63|128);b+=String.fromCharCode(d&63|128)}}return b}function f(a){var b='';var c,f,g,h,i,j,l;var m=0;a=e(a);while(m<a.length){c=a.charCodeAt(m++);f=a.charCodeAt(m++);g=a.charCodeAt(m++);h=c>>2;i=(c&3)<<4|f>>4;j=(f&15)<<2|g>>6;l=g&63;if(isNaN(f)){j=l=64}else if(isNaN(g)){l=64}b=b+d.charAt(h)+d.charAt(i)+d.charAt(j)+d.charAt(l)}return b}var d='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';return a+f(b)+c})('@{dataUriPrefix}','@{encode}','@{dataUriSuffix}')`;
 
    background: @b64DataUri;
}

/*
 * @angle - 1st param (eg 45deg, top, to left bottom)
 * @legacy_color - Color if no gradient at all is available
 * @ie_gradient_type - 0 (vertical) or 1 (horizontal).  If anybody wants to write a filter to deduce this 
 *                     angle, have at it
 */
.linear-gradient(@start_color, @end_color) {
    .linear-gradient(top, @start_color, @end_color, @start_color);
}
.linear-gradient(@angle, @start_color, @end_color) {
    .linear-gradient(@angle, @start_color, @end_color, @start_color);
}
.linear-gradient(@angle, @start_color, @end_color, @legacy_color: @start_color, @ie_gradient_type: 0) {
    @svg: ~'<?xml version="1.0" ?><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 1 1" preserveAspectRatio="none"><linearGradient id="grad-ucgg-generated" gradientUnits="userSpaceOnUse" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="@{start_color}" stop-opacity="1"/><stop offset="100%" stop-color="@{end_color}" stop-opacity="1"/></linearGradient><rect x="0" y="0" width="1" height="1" fill="url(#grad-ucgg-generated)" /></svg>';
 
    
    /* base background */
    background: @legacy_color;
    
    /* IE9 you so special */
    .ie.eq9 & {
        .base64DataUriBackground(@svg);
    }
    /* IE8 is the bad kind of special */
    .ie.lt9 & {
        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='@{start_color}', endColorstr='@{end_color}',GradientType=@ie_gradient_type );
    }
    
    /* hooray modern browsers */
    background: -webkit-linear-gradient(@angle, @start_color, @end_color);
    background: -moz-linear-gradient(@angle, @start_color, @end_color);
    background: linear-gradient(@angle, @start_color, @end_color);
}

.linear-gradient-stops(@angle, @legacy_start_color, @legacy_end_color, @legacy_color, @rest...) 
{
    @svg: ~'<?xml version="1.0" ?><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 1 1" preserveAspectRatio="none"><linearGradient id="grad-ucgg-generated" gradientUnits="userSpaceOnUse" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="@{legacy_start_color}" stop-opacity="1"/><stop offset="100%" stop-color="@{legacy_end_color}" stop-opacity="1"/></linearGradient><rect x="0" y="0" width="1" height="1" fill="url(#grad-ucgg-generated)" /></svg>';
 
    
    /* base background */
    background: @legacy_color;
    
    /* IE9 you so special */
    .ie.eq9 & {
        .base64DataUriBackground(@svg);
    }
    /* IE8 is the bad kind of special */
    .ie.lt9 & {
        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='@{legacy_start_color}', endColorstr='@{legacy_end_color}',GradientType=0 );
    }
    
    /* hooray modern browsers */
    background: -webkit-linear-gradient(@angle, @rest);
    background: -moz-linear-gradient(@angle, @rest);
    background: linear-gradient(@angle, @rest);
}

/*
 * This is not compatible with IE8, don't use it if you have to support old IE
 * 
 * @lhs - Left hand side (height, width, whatever)
 * @rhs - Right hand side, whatever your calculation is.  You probably need a ~
 *
 * Example: .calc(height, ~"100% - 50px")
 *
 * Note, using a guard because less doesn't seem to like using a variable for lhs
 * Annoying, but don't know what else to do
 *
 * http://caniuse.com/calc
 */
.calc(@lhs, @rhs) when (@lhs = width) {
    width: -webkit-calc(@rhs);
    width: calc(@rhs);
}
.calc(@lhs, @rhs) when (@lhs = height) {
    height: -webkit-calc(@rhs);
    height: calc(@rhs);
}
.calc(@lhs, @rhs) when (@lhs = left) {
    left: -webkit-calc(@rhs);
    left: calc(@rhs);
}
.calc(@lhs, @rhs) when (@lhs = right) {
    right: -webkit-calc(@rhs);
    right: calc(@rhs);
}
.calc(@lhs, @rhs) when (@lhs = top) {
    top: -webkit-calc(@rhs);
    top: calc(@rhs);
}
.calc(@lhs, @rhs) when (@lhs = bottom) {
    bottom: -webkit-calc(@rhs);
    bottom: calc(@rhs);
}
.calc(@lhs, @rhs) when (@lhs = min-width) {
    min-width: -webkit-calc(@rhs);
    min-width: calc(@rhs);
}
.calc(@lhs, @rhs) when (@lhs = max-width) {
    max-width: -webkit-calc(@rhs);
    max-width: calc(@rhs);
}
.calc(@lhs, @rhs) when (@lhs = min-height) {
    min-height: -webkit-calc(@rhs);
    min-height: calc(@rhs);
}
.calc(@lhs, @rhs) when (@lhs = max-height) {
    max-height: -webkit-calc(@rhs);
    max-height: calc(@rhs);
}


/*
 * Not compatible with IE8 or IE9 (nothing breaks, they just don't get transitions)
 */
.transition(@arg) {
    -moz-transition: @arg;
    -webkit-transition: @arg;
    transition: @arg;
}

.transition(@transition, @duration, @timingFunction: ease-in-out ) when (@transition = transform) {
    -webkit-transition: -webkit-transform @duration @timingFunction;
    -moz-transition: -moz-transform @duration @timingFunction;
    -ms-transition: -ms-transform @duration @timingFunction;
    transition: transform @duration @timingFunction;
}

/*
 * Not supported in <=IE8
 */
.transform(@arg) {
    -ms-transform: @arg;
    -webkit-transform: @arg;
    transform: @arg;
}

.transform-scale(@arg) {
    -ms-zoom: @arg;
    -ms-transform: scale(@arg);
    -webkit-transform: scale(@arg);
    transform: scale(@arg);
}

.transform-origin(@arg) {
    -ms-transform-origin: @arg;
    -moz-transform-origin: @arg;
    -webkit-transform-origin: @arg;
    transform-origin: @arg;
}

.box-sizing(@arg) {
    -moz-box-sizing: @arg;
    -webkit-box-sizing: @arg;
    box-sizing: @arg;
}

.filter(@arg) {
    -ms-filter: @arg;
    -moz-filter: @arg;
    -webkit-filter: @arg;
    filter: @arg;
}

.user-select(@arg) {
    -ms-user-select: @arg;
    -moz-user-select: @arg;
    -webkit-user-select: @arg;
    user-select: @arg;
}

.backface-visibility(@arg) {
    -webkit-backface-visibility: @arg;
    backface-visibility: @arg;
}

.perspective(@arg) {
    -webkit-perspective: @arg;
    perspective: @arg;
}

.cursor-zoom-in(@arg) {
    cursor: @arg;
    cursor: -webkit-zoom-in;
    cursor: -moz-zoom-in;
}

.cursor-zoom-out(@arg) {
    cursor: @arg;
    cursor: -webkit-zoom-out;
    cursor: -moz-zoom-out;
}

.appearance(@arg) {
    -webkit-appearance: @arg;
    -moz-appearance: @arg;
}

.text-size-adjust(@arg) {
    -webkit-text-size-adjust: @arg;
    -moz-text-size-adjust: @arg;
    -ms-text-size-adjust: @arg;
}

/* 
 *  Make something spin for infinite time, one rotation per @interval 
 *  example: .spin(3000ms)
*/
.spin(@interval) {
    -webkit-animation-name: spin;
    -webkit-animation-duration: @interval;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    -moz-animation-name: spin;
    -moz-animation-duration: @interval;
    -moz-animation-iteration-count: infinite;
    -moz-animation-timing-function: linear;
    -ms-animation-name: spin;
    -ms-animation-duration: @interval;
    -ms-animation-iteration-count: infinite;
    -ms-animation-timing-function: linear;
    animation-name: spin;
    animation-duration: @interval;
    animation-iteration-count: infinite;
    animation-timing-function: linear;

    @-ms-keyframes spin {
        from { -ms-transform: rotate(0deg); }
        to { -ms-transform: rotate(360deg); }
    }
    @-moz-keyframes spin {
        from { -moz-transform: rotate(0deg); }
        to { -moz-transform: rotate(360deg); }
    }
    @-webkit-keyframes spin {
        from { -webkit-transform: rotate(0deg); }
        to { -webkit-transform: rotate(360deg); }
    }
    @keyframes spin {
        from { transform:rotate(0deg); }
        to { transform:rotate(360deg); }
    }
}

/*
 * CSS3 multi-column layout.
 * Won't do anything for IE8 or 9.
 */
.column-count(@arg) {
    -moz-column-count: @arg;
    -webkit-column-count: @arg;
    column-count: @arg;
}
.column-width(@arg) {
    -moz-column-width: @arg;
    -webkit-column-width: @arg;
    column-width: @arg;
}
.column-gap(@arg) {
    -moz-column-gap: @arg;
    -webkit-column-gap: @arg;
    column-gap: @arg;
}
.column-rule(@arg) {
    -moz-column-rule: @arg;
    -webkit-column-rule: @arg;
    column-rule: @arg;
}

/*
 * Input placeholder text
 */
.placeholder-font-style(@style){
    &::-webkit-input-placeholder {
        font-style: @style;
    }
    &:-moz-placeholder {
        font-style: @style;
    }
    &::-moz-placeholder {
        font-style: @style;
    }
    &:-ms-input-placeholder {
        font-style: @style;
    }
}
.placeholder-color(@color: false, @bgcolor: false, @bordercolor: false){
    &::-webkit-input-placeholder {
        .colormixin(@color);
        .bgcolormixin(@bgcolor);
        .bordercolormixin(@bordercolor);
    }
    &:-moz-placeholder {
        .colormixin(@color);
        .bgcolormixin(@bgcolor);
        .bordercolormixin(@bordercolor);
    }
    &::-moz-placeholder {
        .colormixin(@color);
        .bgcolormixin(@bgcolor);
        .bordercolormixin(@bordercolor);
    }
    &:-ms-input-placeholder {
        .colormixin(@color);
        .bgcolormixin(@bgcolor);
        .bordercolormixin(@bordercolor);
    }
}

/* Full-screen mixin */
.full-screen-width(@width: false, @minwidth: false, @maxwidth: false) {
    &:-webkit-full-screen {
        .widthmixin(@width);
        .minwidthmixin(@minwidth);
        .maxwidthmixin(@maxwidth);
    }
    &:-moz-full-screen {
        .widthmixin(@width);
        .minwidthmixin(@minwidth);
        .maxwidthmixin(@maxwidth);
    }
    &:-ms-full-screen {
        .widthmixin(@width);
        .minwidthmixin(@minwidth);
        .maxwidthmixin(@maxwidth);
    }
    &:-o-full-screen {
        .widthmixin(@width);
        .minwidthmixin(@minwidth);
        .maxwidthmixin(@maxwidth);
    }
    &:full-screen {
        .widthmixin(@width);
        .minwidthmixin(@minwidth);
        .maxwidthmixin(@maxwidth);
    }
}
.full-screen-height(@height: false, @minheight: false, @maxheight: false) {
    &:-webkit-full-screen {
        .heightmixin(@height);
        .minheightmixin(@minheight);
        .maxheightmixin(@maxheight);
    }
    &:-moz-full-screen {
        .heightmixin(@height);
        .minheightmixin(@minheight);
        .maxheightmixin(@maxheight);
    }
    &:-ms-full-screen {
        .heightmixin(@height);
        .minheightmixin(@minheight);
        .maxheightmixin(@maxheight);
    }
    &:-o-full-screen {
        .heightmixin(@height);
        .minheightmixin(@minheight);
        .maxheightmixin(@maxheight);
    }
    &:full-screen {
        .heightmixin(@height);
        .minheightmixin(@minheight);
        .maxheightmixin(@maxheight);
    }
}

/* Text hyphenation */
.hyphenate(@style:auto) {
    -webkit-hyphens:@style;
       -moz-hyphens:@style;
        -ms-hyphens:@style;
            hyphens:@style;
}

.clearfix() {
    zoom:1;
    &:before, &:after{ 
        content:""; 
        display:table; 
    }
    &:after{ 
        clear: both; 
    }
}

.font-smoothing(@value: antialiased) when(@value = antialiased) {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.font-smoothing(@value) when (@value = subpixel) {
    -webkit-font-smoothing: subpixel-antialiased;
    -moz-osx-font-smoothing: auto;
}

.flex-sizing(@size:1) {
    flex-grow: @size;
    -ms-flex-grow: @size;
    -moz-flex-grow: @size;
    -webkit-flex-grow:@size;
    flex-shrink: @size;
    -ms-flex-shrink: @size;
    -moz-flex-shrink: @size;
    -webkit-flex-shrink: @size;
}

/*
 * Push lately to have greyscale interfaces.
 * UI likes to think in terms of % grey, so they make mocks with
 * rgba(0,0,0, .74) for 74% grey.
 * This style uses more css room, requires more processing cycles from the browser's paint, and is dangerous
 * if underlying element is ever changed to something other than white.
 *
 * Now you can just do .foo { .grey(74%); color:@grey; }
 */

.grey(@percentage) {
    @grey: darken(#fff, 100% - @percentage);
}


/* Old brand colors */
.brandcolors() {
    @primary-green: #0FCC47;
    @primary-teal: #41CFC7;
    @primary-orange: #F75908;
    @primary-magenta: #ED145A;
    @primary-lightgreen: #BDD023;
    @primary-darkgreen: #026D20;

    @grey1: #111;
    @grey2: #242626;
    @grey3: #2F3131;
    @grey4: #323232;
    @grey5: #363636;
    @grey6: #474747;
    @grey7: #555;
    @grey8: #575757;
    @grey9: #666;
    @grey10: #6F6F6F;
    @grey11: #727272;
    @grey12: #828282;
    @grey13: #999;
    @grey14: #909090;
    @grey15: #CBCBCB;

    @black-alpha1: rgba(0,0,0,0.5);
    @black-alpha2: rgba(0,0,0,0.2);

    @white-alpha1: rgba(0,0,0,0.8);
    @white-alpha2: rgba(0,0,0,0.5);
    @white-alpha3: rgba(0,0,0,0.3);
    @white-alpha4: rgba(0,0,0,0.2);
    @white-alpha5: rgba(0,0,0,0.1);
    @white-alpha6: rgba(0,0,0,0.07);

    @list-level-0: #19252C;
    @list-level-1: #273943;
    @list-level-2: #324855;
    @list-level-3: #455C69;
}

/* New brand colors */
.11-14-brandcolors() {
    /* Used by the header */
    @brand-green: #05CC47;
    @header-green: #475C4D;
    @dark-header-green: #46584A;
    @border-green: #38463B;
    @subheader-green: #3D4F42;
    @submit-green: #5FAC75;
    @menu-grey: #313836;
    @hover-blue: #508FA3;

    /* Colors from the brand guidelines */

    @black: #000;
    @grey1: #181A1B;
    @grey2: #4F5254;
    @grey3: #7D8080;
    @grey4: #F2F2F2;
    @white: #FFF;

    @blue1: #1F3833;
    @blue2: #36807A;
    @blue3: #40CFC7;
    @blue4: #D4F5F2;

    @green1: #1F3626;
    @green2: #42704F;
    @green3: #4DC47D;
    @green4: #D4F5DE;

    @orange: #F7590A;
}


