@font-face{font-family:'Lemon Milk';src:url("fonts/lemonmilk-webfont.woff2") format("woff2"),url("fonts/lemonmilk-webfont.woff") format("woff");font-weight:500;font-style:normal}@font-face{font-family:'Lemon Milk';src:url("fonts/lemonmilkbold-webfont.woff2") format("woff2"),url("fonts/lemonmilkbold-webfont.woff") format("woff");font-weight:900;font-style:normal}@font-face{font-family:'Lemon Milk';src:url("fonts/lemonmilklight-webfont.woff2") format("woff2"),url("fonts/lemonmilklight-webfont.woff") format("woff");font-weight:300;font-style:normal}::-moz-selection,::selection{background-color:#FB2E1D;color:#fff;text-shadow:none}h1,h2,h3,h4,h5{font-family:"Lemon Milk",sans-serif;margin:2em 0 1em;font-weight:500}h1{font-size:48px;margin:1em 0}h2{font-size:26px}h3{font-size:22px}h4{font-size:20px}p,ol,ul{font-size:22px;margin:1em auto;font-weight:300;line-height:1.35em;padding:0}@media screen and (max-width: 640px){p,ol,ul{font-size:18px}}p strong,ol strong,ul strong{font-weight:bold}p img,ol img,ul img{max-width:80%;display:block;margin-left:auto;margin-right:auto}@media screen and (max-width: 640px){p img,ol img,ul img{max-width:100%}}ol,ul{margin-left:2em}mark{background-color:#fffcce}figure{max-width:80%;display:block;margin-left:auto;margin-right:auto}figure figcaption{margin:0.5em 0;font-weight:300;font-style:italic;font-size:1.1em}figure img{display:block;max-width:100%}@media screen and (max-width: 640px){figure{max-width:100%}}a{color:#0064dd}a:hover{color:#003980}table{border-spacing:0;border-collapse:collapse}td,th{border:0.1rem solid #e1e1e1;padding:0.5rem 1rem;text-align:left;font-size:20px;font-weight:300;line-height:1.35em}th{font-weight:500;background-color:#e1e1e1}td:first-child,th:first-child{padding-left:0.5rem}td:last-child,th:last-child{padding-right:0.5rem}blockquote{margin-left:2em;background:#f5f5f5;border-left:6px solid #e6e6e6;padding:0 1em}blockquote p{padding:0.8em 0;margin:0}blockquote h1,blockquote h2,blockquote h3,blockquote h4{padding-top:1em;margin:0}ul.social{list-style:none;margin:0;padding:0;display:flex;justify-content:center}ul.social:hover a{opacity:0.6}ul.social:hover a:hover{opacity:1}ul.social a{display:block;width:1.5em;height:1.5em;position:relative;background-size:contain;background-position:50% 50%;text-indent:-9384px;margin:0.5em 0.2em}ul.social a.instagram{background-image:url("images/social_icons/instagram.svg")}ul.social a.linkedin{background-image:url("images/social_icons/linkedin.svg")}ul.social a.twitter{background-image:url("images/social_icons/twitter.svg")}ul.social a.github{background-image:url("images/social_icons/github.svg")}.ss_toggle{font-family:"Lemon Milk",sans-serif;text-transform:uppercase;color:white;display:flex;align-items:center;z-index:50;justify-content:center}.ss_toggle .links{display:flex;flex-direction:column}.ss_toggle a{display:inline-block;background-color:white;color:black;text-decoration:none;text-align:center;align-self:center;transition:all 0.1s ease-in-out;line-height:normal}.ss_toggle a:hover{background-color:black;color:white;animation:none}.ss_toggle a:focus{background-color:white;color:black;animation:none}@keyframes shake{1%, 9%{transform:translate3d(-1px, 0, 0)}2%, 8%{transform:translate3d(2px, 0, 0)}3%, 5%, 7%{transform:translate3d(-3px, 0, 0)}4%, 6%{transform:translate3d(3px, 0, 0)}0%, 10%, 100%{transform:translate3d(0, 0, 0)}}.category_label{font-weight:300;font-size:24px}@media screen and (max-width: 640px){.category_label{font-size:20px}}.category_label span{color:black}.category_label span:first-of-type{padding-left:10px}.category_label span:last-of-type{padding-right:10px}.category_label a{text-align:center;padding:1px 10px;margin:4px 12px;font-weight:500}@media screen and (max-width: 640px){.category_label a{margin:4px 8px}}.category_label a.selected{background:black;color:white}.category_label a:focus{outline:none;outline-offset:0px}html,body{min-height:100%;margin:0;background-color:#fff;max-width:100%;position:relative;overflow-x:hidden}.site_top{position:fixed;z-index:200;font-family:"Source Sans Pro",sans-serif;padding:50px 0 0 50px}@media screen and (max-width: 1000px){.site_top{padding:0;position:absolute;margin:0 auto;text-align:center;top:0;left:0;right:0}}.site_top .site_name{position:relative;z-index:200;background-color:#fff}@media screen and (max-width: 1000px){.site_top .site_name{padding:40px 25px 0;display:flex;flex-direction:column;align-items:center;background:none}}.site_top h1{margin:0;display:inline-block;z-index:100}@media screen and (max-width: 640px){.site_top h1{font-size:30px}}.site_top h1 a{text-indent:-9485px;background-image:url("images/cave_logo.svg?sanitize=true");background-size:contain;background-position:left bottom;background-repeat:no-repeat;display:block;position:relative;width:115px;height:63px;z-index:50;margin-right:40px}.site_top h1 a:hover{background-color:transparent}@media screen and (max-width: 640px){.site_top h1 a{background-position:center center}}@media screen and (max-width: 1000px){.site_top h1 a{width:120px;height:auto;margin-right:0px;margin-bottom:10px}}.site_top a{color:#000;text-decoration:none;text-transform:lowercase;padding:2px 7px}@media screen and (max-width: 1000px){.site_top a{display:inline-block}}.site_top a.open_menu{display:none;width:auto;padding:0 10px;line-height:30px;text-transform:uppercase;margin-top:10px}@media screen and (max-width: 1000px){.site_top a.open_menu{display:block}}.site_top a.open_menu.open{display:none}.site_top a:hover{color:white;background-color:black}.site_top nav{font-weight:300;position:relative;z-index:500;float:left}@media screen and (max-width: 1000px){.site_top nav{float:none;text-align:center;z-index:150;transform:translateY(-120%);transition:transform 0.35s cubic-bezier(0.26, 1.91, 0.8, 0.73)}.site_top nav>*{transition:opacity 0.35s linear;opacity:0}}.site_top nav.open{transform:translateY(0%)}.site_top nav.open>*{opacity:1}@media screen and (min-width: 1000px){.site_top nav .mobile_menu{display:none}}.site_top nav ul{margin:1em 0 0;padding:0;list-style:none;transition:transform 0.15s cubic-bezier(0.26, 1.91, 0.8, 0.73)}@media screen and (max-width: 1000px){.site_top nav ul{display:flex;flex-direction:column;align-items:center}}.site_top nav ul li{line-height:1.5em;font-size:18px;transition:transform 0.15s cubic-bezier(0.26, 1.91, 0.8, 0.73)}@media screen and (max-width: 1000px){.site_top nav ul li{display:inline-block}}@media screen and (max-width: 1000px){.site_top nav ul li:hover{transform:none}}.site_name:after,nav:after{content:"";background-color:#fff;display:block;position:absolute;width:2000px;transform-origin:center bottom;z-index:10;bottom:-25px;right:0px;transform:translateX(50%) rotate(-55deg);height:2000px;outline-offset:10px;outline:8px solid #fff;transition:all 0.2s cubic-bezier(0.26, 1.91, 0.8, 0.73)}@media screen and (max-width: 1000px){.site_name:after,nav:after{display:none}}nav:after{display:none;transform:translateX(50%) rotate(-10deg);z-index:-10;right:50%}@media screen and (max-width: 1000px){nav:after{display:block}}main,footer{max-width:1000px;margin:10px auto;max-width:calc(100% - 300px - 300px);z-index:500;position:relative;font-family:"Source Sans Pro",sans-serif}main .panel_full_width,footer .panel_full_width{margin:30px auto;padding:0;max-width:90ch;font-size:20px}@media screen and (max-width: 1000px){main .panel_full_width,footer .panel_full_width{padding:0}}@media screen and (max-width: 1500px){main,footer{margin-left:300px;margin-right:30px;max-width:calc(100% - 300px - 30px)}}@media screen and (max-width: 1000px){main,footer{margin-left:25px;margin-left:25px;max-width:100%;background:white;z-index:100}}footer{margin-top:3em;margin-bottom:3em}footer img{display:block;margin:0 auto 0.8em;width:4em}footer h5{text-align:center;font-size:16px;text-transform:lowercase;font-family:"Source Sans Pro",sans-serif;font-weight:300;line-height:1.3em}footer ul.social a{filter:invert(100%)}.intro_bg{width:100vw;position:relative;height:100vh;background:url("/images/background_homepage.jpg") no-repeat;background-position:60% center;background-size:cover;display:flex;justify-content:center;align-items:center;flex-direction:column}@media screen and (max-width: 640px){.intro_bg{background-position:50% center}}.intro_bg .social{position:absolute;bottom:1em;font-size:26px}@media screen and (max-width: 640px){.intro_bg .social{bottom:0.2em;font-size:20px}}.intro_bg:before{content:"";background-color:#8dc140;mix-blend-mode:color-burn;position:absolute;width:100%;height:100%;display:block}.tagline{font-size:48px;font-weight:500}.tagline span:nth-of-type(1),.tagline span:nth-of-type(3){min-width:250px}.tagline span:nth-of-type(1){text-align:right}@media screen and (max-width: 640px){.tagline{font-size:36px;flex-direction:column;margin-top:50%}.tagline span:nth-of-type(n){min-width:auto}}@media screen and (max-width: 640px){.tagline .links{flex-direction:row;margin:5px 0}}.tagline a{animation:shake 3s linear 3s infinite;padding:2px 15px;margin:10px 25px;font-weight:900}@media screen and (max-width: 640px){.tagline a{margin:10px 10px}}.tagline a:nth-of-type(2){animation:shake 3s linear 3.1s infinite}.tagline a:focus{outline-offset:7px;outline:5px solid white}main .intro_blurb{margin-top:60px}.profile_pic{border-radius:100%}.projects.serious{margin-top:25px;display:flex;flex-direction:column}.projects.serious .project_card{position:relative;margin-bottom:20px}.projects.serious .project_card:nth-of-type(2n){align-self:flex-end}.projects.serious .project_card .project_card_img{max-width:100%}.projects.serious .project_card .project_card_img img{display:block;max-width:100%;filter:grayscale(50%) contrast(150%);transition:opacity 0.15s ease-in-out}.projects.serious .project_card .project_card_img img:nth-of-type(1){z-index:20}.projects.serious .project_card.no_filter img{filter:none}.projects.serious .project_card h3{font-size:40px;font-weight:500;margin:0;color:black;font-family:"Lemon Milk", sans-serif;position:absolute;bottom:20px;left:25px;z-index:30;line-height:1em;mix-blend-mode:soft-light;transition:0.3s all ease-in-out;cursor:default}@media screen and (max-width: 640px){.projects.serious .project_card h3{font-size:32px;bottom:10px;left:15px}}.projects.serious .project_card.text_right h3{left:auto;right:25px;text-align:right}@media screen and (max-width: 640px){.projects.serious .project_card.text_right h3{right:15px}}.serious_footnote{text-align:center;font-size:18px;text-transform:lowercase}.projects.silly{display:grid;margin-top:25px;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:20px}@media screen and (max-width: 640px){.projects.silly{grid-template-columns:1fr}}.projects.silly .project_card .project_card_img{max-width:100%;position:relative;height:0;overflow:hidden;padding-top:calc(2 / 3 * 100%)}.projects.silly .project_card .project_card_img img{display:block;max-width:100%;filter:grayscale(50%) contrast(150%);position:absolute;top:0;left:0;float:left;z-index:10;transition:opacity 0.15s ease-in-out}.projects.silly .project_card .project_card_img img:nth-of-type(1){z-index:20}.projects.silly .project_card.no_filter img{filter:none}.projects.silly .project_card h3{font-size:26px;font-weight:500;margin:1em 0 0.2em;color:#bbb;font-family:"Lemon Milk", sans-serif;transition:all 0.15s ease-in-out}@media screen and (max-width: 640px){.projects.silly .project_card h3{font-size:22px;color:#333}}.projects.silly .project_card:hover h3{color:#333}.projects.silly .project_card:hover .project_card_img img:nth-of-type(1){opacity:0}.projects.silly .project_card p{font-size:18px;font-weight:300;margin:0;color:#000}.serious_silly_toggle.serious .silly_container{display:none}.serious_silly_toggle.silly .serious_container{display:none}main.text_column{max-width:112ch}main.article h1{margin-bottom:0.4em;text-align:center;line-height:1.1em}main.article .publishing_credits{text-align:center;font-size:18px;font-style:italic}main.article time{font-family:"Lemon Milk",sans-serif;font-size:18px;margin:0.5em 0 2em;font-weight:500;color:#333;text-align:center;display:block}.article_header{width:100%}@media screen and (max-width: 1000px){.article_header{height:40vh;margin-top:10vh;position:relative;width:auto;display:flex;align-content:center}}@media screen and (max-width: 640px){.article_header{margin-top:15vh;height:30vh}}.article_header img{width:100%}@media screen and (max-width: 1000px){.article_header img{object-fit:cover}}.comments .comment_form{width:50%}@media screen and (max-width: 640px){.comments .comment_form{width:100%}}.comments .comment_form h4{font-weight:400;font-size:0.9em;margin-bottom:0;text-align:left}.comments .comment_form fieldset{margin:0.5em 0;display:flex;border:0;padding:0}.comments .comment_form fieldset.hidden_input{display:none}.comments .comment_form fieldset.right_align{margin-left:90px}.comments .comment_form fieldset label{font-family:"Source Sans Pro",sans-serif;font-weight:300;min-width:90px;padding:0.3em 0}.comments .comment_form fieldset .textfield_input{flex-grow:1;font-size:16px;font-family:"Source Sans Pro",sans-serif;padding:0.4em 0.5em}.comments .comment_form textarea{width:100%;height:9em;line-height:1.25em;font-size:16px;font-family:"Source Sans Pro",sans-serif;padding:0.5em}.comments .comment_form .button{font-size:0.8em;display:inline-block;border:2px solid black;padding:0.3em 0.6em;cursor:pointer;background:white;text-transform:uppercase;font-weight:400;font-family:"Lemon Milk",sans-serif}.comments .comment_form .button:hover{background:black;color:white}.comments .comment_form .button:disabled{background:#444;color:white;border-color:#444;cursor:default}.comments .comment_form .message_back{display:none;padding:0.5em 1em}.comments .comment_form.show_msg .message_back{display:block}.comments .comment_form.msg_success .comment-form-submit{display:none}.comments .comment_form.msg_success .message_back{background-color:rgba(0,255,0,0.1)}.comments .comment_form.msg_failure .message_back{background-color:rgba(255,0,0,0.1)}.comments .comment{border-left:3px solid #ddd;padding:0 1em;margin-bottom:1em}.comments .comment:hover{border-color:#bbb}.comments .comment .comment_author{font-size:0.8em;font-family:"Source Sans Pro",sans-serif;font-weight:300;margin:1em 0}.comments .comment .comment_author a{color:black}.comments .comment .comment_reply-link{font-size:0.9em;font-weight:300;display:inline-block;border:1px solid #ccc;padding:0.5em 1em;cursor:pointer}.comments .comment .comment_reply-link:hover{border-color:#FB2E1D}.comments .comment_child{margin-left:2em}.article_list .article_card{display:flex;color:black;margin-bottom:1em;text-decoration:none}@media screen and (max-width: 640px){.article_list .article_card{flex-direction:column}}.article_list .article_card time{width:90px;font-size:20px}@media screen and (max-width: 640px){.article_list .article_card time{font-size:16px;margin-bottom:0.3em}}.article_list .article_card h3{font-family:"Source Sans Pro",sans-serif;margin:0;font-size:20px}.article_list .article_card .tags{font-size:14px;opacity:0.4;margin:0.5em 0 0 0}@media screen and (max-width: 640px){.article_list .article_card .tags{display:none}}.article_list .article_card .tags span{background:rgba(0,0,0,0.05);border-radius:4px;padding:2px 6px}.article_list .article_card:hover h3{text-decoration:underline}.article_list .article_card:hover .tags{opacity:0.7}.articles{margin:25px 0;display:grid;grid-template-columns:1fr 1fr;grid-gap:25px 25px}@media screen and (max-width: 640px){.articles{grid-template-columns:1fr}}.articles .article_card{text-decoration:none;display:block}.articles .article_card header{max-width:100%;position:relative;display:block;height:0px;padding-top:80%;background-size:cover;background-position:50% 50%}.articles .article_card header h3{font-size:26px;position:absolute;left:0;bottom:0;color:white;font-weight:300;padding:0.5em 1em 1.25em;margin:0;text-align:center;z-index:50;width:100%;box-sizing:border-box}.articles .article_card header:after{content:"";display:block;left:0px;right:0px;bottom:0px;height:50%;position:absolute;background:#000;background:linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);z-index:20}.articles .article_card:hover h3{text-decoration:underline}.articles .article_card:hover header:after{background:linear-gradient(0deg, rgba(0,0,0,0.9) 0%, transparent 100%)}.articles .article_card.no_filter{filter:none}.articles .article_card time{font-weight:300;margin:1em 0 0.5em;color:#333;font-family:"Lemon Milk",sans-serif;text-align:center;display:block;font-size:18px}.articles .article_card p{font-weight:300;margin:0.5em 1em 1em;color:#000;text-align:center;font-size:20px}.highlighter-rouge{font-weight:400;font-size:17px;padding:5px;background-color:#ebebeb;box-sizing:border-box;font-family:"Inconsolata",monospace;line-height:1.2em;position:relative;overflow:hidden}.highlighter-rouge .highlight{padding:7px;margin:0}.highlighter-rouge>.highlight{overflow-x:auto}.highlighter-rouge .code{-moz-tab-size:3;-o-tab-size:3;tab-size:3;white-space:pre-wrap}.code-links{position:absolute;top:0;right:0;display:block;background:#ebebeb;font-family:"Source Sans Pro",sans-serif;border-bottom-left-radius:8px}.code-links a{display:block;color:black;text-decoration:none;padding:4px 8px;font-size:12px;font-weight:700}.code-links a:hover,.code-links a:active{color:#0064dd}.highlight .hll{background-color:#49483e}.highlight{background:#272822;color:#f8f8f2}.highlight .c{color:#75715e}.highlight .err{color:#960050;background-color:#1e0010}.highlight .k{color:#66d9ef}.highlight .l{color:#ae81ff}.highlight .n{color:#f8f8f2}.highlight .o{color:#f92672}.highlight .p{color:#f8f8f2}.highlight .ch{color:#75715e}.highlight .cm{color:#75715e}.highlight .cp{color:#75715e}.highlight .cpf{color:#75715e}.highlight .c1{color:#75715e}.highlight .cs{color:#75715e}.highlight .gd{color:#f92672}.highlight .ge{font-style:italic}.highlight .gi{color:#a6e22e}.highlight .gs{font-weight:bold}.highlight .gu{color:#75715e}.highlight .kc{color:#66d9ef}.highlight .kd{color:#66d9ef}.highlight .kn{color:#f92672}.highlight .kp{color:#66d9ef}.highlight .kr{color:#66d9ef}.highlight .kt{color:#66d9ef}.highlight .ld{color:#e6db74}.highlight .m{color:#ae81ff}.highlight .s{color:#e6db74}.highlight .na{color:#a6e22e}.highlight .nb{color:#f8f8f2}.highlight .nc{color:#a6e22e}.highlight .no{color:#66d9ef}.highlight .nd{color:#a6e22e}.highlight .ni{color:#f8f8f2}.highlight .ne{color:#a6e22e}.highlight .nf{color:#a6e22e}.highlight .nl{color:#f8f8f2}.highlight .nn{color:#f8f8f2}.highlight .nx{color:#a6e22e}.highlight .py{color:#f8f8f2}.highlight .nt{color:#f92672}.highlight .nv{color:#f8f8f2}.highlight .ow{color:#f92672}.highlight .w{color:#f8f8f2}.highlight .mb{color:#ae81ff}.highlight .mf{color:#ae81ff}.highlight .mh{color:#ae81ff}.highlight .mi{color:#ae81ff}.highlight .mo{color:#ae81ff}.highlight .sa{color:#e6db74}.highlight .sb{color:#e6db74}.highlight .sc{color:#e6db74}.highlight .dl{color:#e6db74}.highlight .sd{color:#e6db74}.highlight .s2{color:#e6db74}.highlight .se{color:#ae81ff}.highlight .sh{color:#e6db74}.highlight .si{color:#e6db74}.highlight .sx{color:#e6db74}.highlight .sr{color:#e6db74}.highlight .s1{color:#e6db74}.highlight .ss{color:#e6db74}.highlight .bp{color:#f8f8f2}.highlight .fm{color:#a6e22e}.highlight .vc{color:#f8f8f2}.highlight .vg{color:#f8f8f2}.highlight .vi{color:#f8f8f2}.highlight .vm{color:#f8f8f2}.highlight .il{color:#ae81ff}
