@charset "UTF-8";.motion-poster,[data-animation-stage]{aspect-ratio:5/3;color:var(--color-accent);display:block;max-width:40rem;width:100%}[data-animation-stage] svg{display:block;max-height:28rem;width:100%}[data-contrast-sample]{padding:1.5rem;border:1px solid var(--color-border)}.middle-grid .content{min-width:0}:root{--content-max-width:1010px;--radius-sm:5px;--transition-fast:100ms ease-in-out;--color-bg:#0e1111;--color-surface:#141414;--color-surface-2:#282828;--color-border:#545454;--color-text:#cccccc;--color-text-inverse:#000000;--color-white:#ffffff;--color-accent:#00a8ff;--color-accent-muted:rgb(29.58, 88.044, 118.32);--color-note:rgb(198, 93, 9)}#back-to-top{bottom:-160px;height:0;left:0;opacity:0;outline:0;position:fixed;transition:.3s ease-in-out;width:100%;z-index:1000}#back-to-top.show{bottom:0;opacity:1}#back-to-top .back-content{height:0;margin:0 auto;max-width:var(--content-max-width);position:relative}#back-to-top a{background-color:var(--color-surface);border:solid var(--color-white) 2px;border-radius:50%;bottom:20px;box-shadow:0 6px 20px rgba(0,0,0,.35);height:60px;line-height:65px;position:absolute;text-align:center;transition:.3s ease-in-out;width:60px;right:16px}#back-to-top a svg.top-arrow line{stroke:var(--color-white);stroke-linecap:round;stroke-width:3px}#back-to-top a:hover{background-color:var(--color-border);box-shadow:0 8px 26px rgba(0,0,0,.45);opacity:1;outline:0}.hexagon-background{background-color:var(--color-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill-rule='evenodd'%3E%3Cg id='hexagons' fill='%232f383b' fill-opacity='0.4' fill-rule='nonzero'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.cross-background{background-color:var(--color-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='192' height='192' viewBox='0 0 192 192'%3E%3Cpath fill='%23141414' fill-opacity='0.4' d='M192 15v2a11 11 0 0 0-11 11c0 1.94 1.16 4.75 2.53 6.11l2.36 2.36a6.93 6.93 0 0 1 1.22 7.56l-.43.84a8.08 8.08 0 0 1-6.66 4.13H145v35.02a6.1 6.1 0 0 0 3.03 4.87l.84.43c1.58.79 4 .4 5.24-.85l2.36-2.36a12.04 12.04 0 0 1 7.51-3.11 13 13 0 1 1 .02 26 12 12 0 0 1-7.53-3.11l-2.36-2.36a4.93 4.93 0 0 0-5.24-.85l-.84.43a6.1 6.1 0 0 0-3.03 4.87V143h35.02a8.08 8.08 0 0 1 6.66 4.13l.43.84a6.91 6.91 0 0 1-1.22 7.56l-2.36 2.36A10.06 10.06 0 0 0 181 164a11 11 0 0 0 11 11v2a13 13 0 0 1-13-13 12 12 0 0 1 3.11-7.53l2.36-2.36a4.93 4.93 0 0 0 .85-5.24l-.43-.84a6.1 6.1 0 0 0-4.87-3.03H145v35.02a8.08 8.08 0 0 1-4.13 6.66l-.84.43a6.91 6.91 0 0 1-7.56-1.22l-2.36-2.36A10.06 10.06 0 0 0 124 181a11 11 0 0 0-11 11h-2a13 13 0 0 1 13-13c2.47 0 5.79 1.37 7.53 3.11l2.36 2.36a4.94 4.94 0 0 0 5.24.85l.84-.43a6.1 6.1 0 0 0 3.03-4.87V145h-35.02a8.08 8.08 0 0 1-6.66-4.13l-.43-.84a6.91 6.91 0 0 1 1.22-7.56l2.36-2.36A10.06 10.06 0 0 0 107 124a11 11 0 0 0-22 0c0 1.94 1.16 4.75 2.53 6.11l2.36 2.36a6.93 6.93 0 0 1 1.22 7.56l-.43.84a8.08 8.08 0 0 1-6.66 4.13H49v35.02a6.1 6.1 0 0 0 3.03 4.87l.84.43c1.58.79 4 .4 5.24-.85l2.36-2.36a12.04 12.04 0 0 1 7.51-3.11A13 13 0 0 1 81 192h-2a11 11 0 0 0-11-11c-1.94 0-4.75 1.16-6.11 2.53l-2.36 2.36a6.93 6.93 0 0 1-7.56 1.22l-.84-.43a8.08 8.08 0 0 1-4.13-6.66V145H11.98a6.1 6.1 0 0 0-4.87 3.03l-.43.84c-.79 1.58-.4 4 .85 5.24l2.36 2.36a12.04 12.04 0 0 1 3.11 7.51A13 13 0 0 1 0 177v-2a11 11 0 0 0 11-11c0-1.94-1.16-4.75-2.53-6.11l-2.36-2.36a6.93 6.93 0 0 1-1.22-7.56l.43-.84a8.08 8.08 0 0 1 6.66-4.13H47v-35.02a6.1 6.1 0 0 0-3.03-4.87l-.84-.43c-1.59-.8-4-.4-5.24.85l-2.36 2.36A12 12 0 0 1 28 109a13 13 0 1 1 0-26c2.47 0 5.79 1.37 7.53 3.11l2.36 2.36a4.94 4.94 0 0 0 5.24.85l.84-.43A6.1 6.1 0 0 0 47 84.02V49H11.98a8.08 8.08 0 0 1-6.66-4.13l-.43-.84a6.91 6.91 0 0 1 1.22-7.56l2.36-2.36A10.06 10.06 0 0 0 11 28 11 11 0 0 0 0 17v-2a13 13 0 0 1 13 13c0 2.47-1.37 5.79-3.11 7.53l-2.36 2.36a4.94 4.94 0 0 0-.85 5.24l.43.84A6.1 6.1 0 0 0 11.98 47H47V11.98a8.08 8.08 0 0 1 4.13-6.66l.84-.43a6.91 6.91 0 0 1 7.56 1.22l2.36 2.36A10.06 10.06 0 0 0 68 11 11 11 0 0 0 79 0h2a13 13 0 0 1-13 13 12 12 0 0 1-7.53-3.11l-2.36-2.36a4.93 4.93 0 0 0-5.24-.85l-.84.43A6.1 6.1 0 0 0 49 11.98V47h35.02a8.08 8.08 0 0 1 6.66 4.13l.43.84a6.91 6.91 0 0 1-1.22 7.56l-2.36 2.36A10.06 10.06 0 0 0 85 68a11 11 0 0 0 22 0c0-1.94-1.16-4.75-2.53-6.11l-2.36-2.36a6.93 6.93 0 0 1-1.22-7.56l.43-.84a8.08 8.08 0 0 1 6.66-4.13H143V11.98a6.1 6.1 0 0 0-3.03-4.87l-.84-.43c-1.59-.8-4-.4-5.24.85l-2.36 2.36A12 12 0 0 1 124 13a13 13 0 0 1-13-13h2a11 11 0 0 0 11 11c1.94 0 4.75-1.16 6.11-2.53l2.36-2.36a6.93 6.93 0 0 1 7.56-1.22l.84.43a8.08 8.08 0 0 1 4.13 6.66V47h35.02a6.1 6.1 0 0 0 4.87-3.03l.43-.84c.8-1.59.4-4-.85-5.24l-2.36-2.36A12 12 0 0 1 179 28a13 13 0 0 1 13-13zM84.02 143a6.1 6.1 0 0 0 4.87-3.03l.43-.84c.8-1.59.4-4-.85-5.24l-2.36-2.36A12 12 0 0 1 83 124a13 13 0 1 1 26 0c0 2.47-1.37 5.79-3.11 7.53l-2.36 2.36a4.94 4.94 0 0 0-.85 5.24l.43.84a6.1 6.1 0 0 0 4.87 3.03H143v-35.02a8.08 8.08 0 0 1 4.13-6.66l.84-.43a6.91 6.91 0 0 1 7.56 1.22l2.36 2.36A10.06 10.06 0 0 0 164 107a11 11 0 0 0 0-22c-1.94 0-4.75 1.16-6.11 2.53l-2.36 2.36a6.93 6.93 0 0 1-7.56 1.22l-.84-.43a8.08 8.08 0 0 1-4.13-6.66V49h-35.02a6.1 6.1 0 0 0-4.87 3.03l-.43.84c-.79 1.58-.4 4 .85 5.24l2.36 2.36a12.04 12.04 0 0 1 3.11 7.51A13 13 0 1 1 83 68a12 12 0 0 1 3.11-7.53l2.36-2.36a4.93 4.93 0 0 0 .85-5.24l-.43-.84A6.1 6.1 0 0 0 84.02 49H49v35.02a8.08 8.08 0 0 1-4.13 6.66l-.84.43a6.91 6.91 0 0 1-7.56-1.22l-2.36-2.36A10.06 10.06 0 0 0 28 85a11 11 0 0 0 0 22c1.94 0 4.75-1.16 6.11-2.53l2.36-2.36a6.93 6.93 0 0 1 7.56-1.22l.84.43a8.08 8.08 0 0 1 4.13 6.66V143h35.02z'%3E%3C/path%3E%3C/svg%3E")}.diagonal-background{background-color:var(--color-bg);background-image:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23141414' fill-opacity='0.4' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E")}.dots-background{background-color:var(--color-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cpath fill='%2314141455' fill-opacity='0.4' d='M1 3h1v1H1V3zm2-2h1v1H3V1z'%3E%3C/path%3E%3C/svg%3E")}input,select{box-sizing:border-box}.input,.pure-form input.pure-input-1,input[type=password],input[type=search],input[type=submit],input[type=text],select,textarea{border-radius:var(--radius-sm);background-color:var(--color-surface);border:1px solid var(--color-border);padding:5px;transition:all var(--transition-fast)}select:focus{outline:0}input[type=password],input[type=search],input[type=submit],input[type=text]{color:var(--color-text)}input[type=password]:focus,input[type=password]:hover,input[type=search],input[type=submit]:focus,input[type=submit]:hover,input[type=text]:focus,input[type=text]:hover{border:1px solid var(--color-text)}.pure-form input.pure-input-1{box-shadow:none}textarea{box-sizing:border-box;height:150px;resize:none;transition:border .1s ease-in-out;width:100%}select:hover,textarea:focus,textarea:hover{border:1px solid var(--color-text)}select{-moz-appearance:none;-webkit-appearance:none;appearance:none;color:var(--color-text);border-radius:var(--radius-sm);background-color:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;padding:5px;transition:all var(--transition-fast);user-select:none}select::after{border-color:#fff transparent transparent;border-style:solid;border-width:6px;content:"";height:0;position:absolute;right:10px;top:15px;width:0}select.select-arrow-active::after{border-color:transparent transparent #fff;top:9px}select.select-arrow-active{border-radius:5px 5px 0 0}.konami{display:inline-block}.konami>img{display:none;height:40px;width:40px}ul.pagination{display:inline-block;margin:0;padding:0}ul.pagination li{display:inline}ul.pagination li a,ul.pagination li span{background-color:var(--color-surface-2);color:var(--color-text);float:left;padding:8px 16px;text-decoration:none;transition:background-color .3s}ul.pagination li .active{background-color:var(--color-accent-muted);color:var(--color-text-inverse)}ul.pagination li a:hover:not(.active){background-color:var(--color-border)}.pagination li span[aria-disabled=true]{cursor:not-allowed;opacity:.75}.pagination li:first-child>*{border-bottom-left-radius:var(--radius-sm);border-top-left-radius:var(--radius-sm)}.pagination li:last-child>*{border-bottom-right-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}div.center{text-align:center}ul.social{list-style-type:none;margin:0;padding:0}.social li{overflow:hidden;padding-top:5px}.social li a{line-height:36px}.social svg.googleplus-logo .base{fill:#dc4e41}.social li a.googleplus{color:#dc4e41}.social svg.soundcloud-logo .base{fill:#ff8800}.social li a.soundcloud{color:#f80}.social svg.youtube-logo .base{fill:#cd201f}.social li a.youtube{color:#cd201f}.social svg.bitbucket-logo .base{fill:#205081}.social li a.bitbucket{color:#205081}.social svg.linkedin-logo .base{fill:#0077b5}.social li a.linkedin{color:#0077b5}.social svg.facebook-logo .base{fill:#3b5998}.social li a.facebook{color:#3b5998}.social svg.launchpad-logo .base{fill:#b35a13}.social li a.launchpad{color:#b35a13}.social svg.twitter-logo .base{fill:#1da1f2}.social li a.twitter{color:#1da1f2}.social svg.github-logo .base{fill:#333333}.social li a.github{color:#333}.social svg.gitlab-logo .base{fill:#30353e}.social li a.gitlab{color:#e24329}.social svg.mumble-logo .base{fill:black}.social li a.mumble{color:var(--color-white)}.social svg.discord-logo .base{fill:#7289da}.social li a.discord{color:#7289da}.social svg.matrix-logo .base{fill:#0dbd8b}.social li a.matrix{color:#0dbd8b}.social svg{float:left;height:36px;margin-right:5px;width:36px}.social svg .logo{fill:var(--color-white)}.social li:hover svg .base{filter:brightness(120%)}.box{border-radius:var(--radius-sm);background-color:var(--color-surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill-rule='evenodd'%3E%3Cg id='hexagons' fill='%2300a8ff17' fill-opacity='0.4' fill-rule='nonzero'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");border:1px solid var(--color-border);cursor:pointer;display:block;height:calc(100% - 10px);margin:5px;text-align:center;transition:background 150ms}.box:hover{background-color:var(--color-surface-2);text-decoration:none;transition:background 150ms}.box img,.box svg{fill:var(--color-white);margin:7px 0;width:48px}.box p{color:var(--color-text)}.box h2{margin-bottom:5px}.command{border-radius:var(--radius-sm);border:1px solid var(--color-border);padding:1rem;margin-top:1rem;margin-bottom:1rem;background-color:var(--color-surface);color:var(--color-text)}.command:before{content:"$ ";color:var(--color-note);font-weight:700;user-select:none;pointer-events:none}pre.configuration{border-radius:var(--radius-sm);border:1px solid var(--color-border);font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;margin-bottom:1rem;margin-top:1rem;overflow:auto;padding:.5rem;background-color:var(--color-surface);color:var(--color-text)}.note{border-radius:var(--radius-sm);border:1px solid var(--color-border);display:flex;margin-top:1rem;margin-bottom:1rem;background-color:var(--color-surface);color:var(--color-text)}.note .note-icon{align-self:center;height:2em;padding:1rem;width:2em}.note .note-icon circle,.note .note-icon path{fill:var(--color-note)}.note .note-inner{align-self:center;flex-direction:row}.typing{width:22ch;animation:2s steps(22) typing,.5s step-end infinite alternate blink;white-space:nowrap;overflow:hidden;border-right:3px solid;font-family:monospace;font-size:2rem;margin-top:1rem;margin-bottom:1rem}@keyframes typing{from{width:0}}@keyframes blink{50%{border-color:transparent}}.glitch-wrapper{align-items:center;display:flex;height:100%;justify-content:center}.glitch{display:inline-block;font-family:Monospace;position:relative;text-transform:uppercase}.glitch::after,.glitch::before{background:#000;content:attr(data-text);height:100%;position:absolute;top:0;width:100%}.glitch::before{animation:3s linear infinite alternate-reverse glitch-anim-2;clip:rect(24px,550px,90px,0);left:2px;text-shadow:-2px 0 #49fc00}.glitch::after{animation:2.5s linear infinite alternate-reverse glitch-anim;clip:rect(85px,550px,140px,0);left:-2px;text-shadow:-2px 0 #b300fc}@keyframes glitch-anim{0%{clip:rect(46px,9999px,82px,0)}4.166666666666666%{clip:rect(85px,9999px,114px,0)}8.333333333333332%{clip:rect(37px,9999px,22px,0)}12.5%{clip:rect(71px,9999px,44px,0)}16.666666666666664%{clip:rect(133px,9999px,150px,0)}20.833333333333336%{clip:rect(17px,9999px,86px,0)}25%{clip:rect(83px,9999px,139px,0)}29.166666666666668%{clip:rect(42px,9999px,0,0)}33.33333333333333%{clip:rect(6px,9999px,63px,0)}37.5%{clip:rect(8px,9999px,27px,0)}41.66666666666667%{clip:rect(113px,9999px,63px,0)}45.83333333333333%{clip:rect(148px,9999px,63px,0)}50%{clip:rect(17px,9999px,95px,0)}54.166666666666664%{clip:rect(81px,9999px,99px,0)}58.333333333333336%{clip:rect(139px,9999px,137px,0)}62.5%{clip:rect(18px,9999px,86px,0)}66.66666666666666%{clip:rect(103px,9999px,26px,0)}70.83333333333334%{clip:rect(25px,9999px,22px,0)}75%{clip:rect(133px,9999px,91px,0)}79.16666666666666%{clip:rect(128px,9999px,22px,0)}83.33333333333334%{clip:rect(129px,9999px,73px,0)}87.5%{clip:rect(13px,9999px,25px,0)}91.66666666666666%{clip:rect(102px,9999px,69px,0)}95.83333333333334%{clip:rect(147px,9999px,113px,0)}100%{clip:rect(55px,9999px,66px,0)}}@keyframes glitch-anim-2{6.666666666666667%{clip:rect(12px,9999px,141px,0)}10%{clip:rect(5px,9999px,140px,0)}13.333333333333334%{clip:rect(55px,9999px,24px,0)}16.666666666666664%{clip:rect(83px,9999px,39px,0)}20%{clip:rect(150px,9999px,29px,0)}23.333333333333332%{clip:rect(2px,9999px,2px,0)}26.666666666666668%{clip:rect(78px,9999px,26px,0)}30%{clip:rect(147px,9999px,85px,0)}33.33333333333333%{clip:rect(83px,9999px,12px,0)}36.666666666666664%{clip:rect(114px,9999px,14px,0)}40%{clip:rect(40px,9999px,42px,0)}43.333333333333336%{clip:rect(15px,9999px,55px,0)}46.666666666666664%{clip:rect(73px,9999px,52px,0)}50%{clip:rect(108px,9999px,39px,0)}53.333333333333336%{clip:rect(56px,9999px,111px,0)}56.666666666666664%{clip:rect(52px,9999px,34px,0)}60%{clip:rect(123px,9999px,145px,0)}63.33333333333333%{clip:rect(51px,9999px,7px,0)}66.66666666666666%{clip:rect(85px,9999px,123px,0)}70%{clip:rect(101px,9999px,149px,0)}73.33333333333333%{clip:rect(25px,9999px,125px,0)}76.66666666666667%{clip:rect(60px,9999px,65px,0)}80%{clip:rect(117px,9999px,52px,0)}83.33333333333334%{clip:rect(67px,9999px,131px,0)}86.66666666666667%{clip:rect(45px,9999px,65px,0)}90%{clip:rect(34px,9999px,109px,0)}93.33333333333333%{clip:rect(9px,9999px,16px,0)}96.66666666666667%{clip:rect(51px,9999px,8px,0)}100%{clip:rect(77px,9999px,133px,0)}}.skill{list-style:none;overflow-y:hidden;padding-bottom:5px;text-decoration:none;transition:.5s ease-in-out}.skill .progress{border-radius:var(--radius-sm);background:var(--color-surface);display:block;height:25px;position:relative;width:100%}.skill .progress .percentage{border-radius:var(--radius-sm);background-color:var(--color-accent);background-image:url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000000' fill-opacity='0.2' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E");bottom:0;margin:0;padding:0;position:absolute;top:0}.skill h5{margin:0 0 0 5px}.skill-grid{align-items:center;display:grid;grid-template-areas:"bar";grid-template-columns:1fr;grid-template-rows:25px;justify-items:stretch}.skill-grid .text{grid-area:bar;z-index:3}.skill-grid .progress{grid-area:bar;z-index:2}.skill-grid .background{grid-area:bar;z-index:1}.visually-hidden{border:0;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.skill-table-section h2{margin:5px 0}.skill-table{table-layout:auto}.skill-table .skill-level,.skill-table .skill-level-heading{padding-left:1em;width:9em}.skill-table .skill-note{color:var(--color-border);display:block;font-size:.8em;font-weight:400}.skill-dots{display:flex;gap:6px;list-style:none;margin:0;padding:0}.skill-dots .dot{background-color:var(--color-surface-2);border-radius:50%;height:14px;width:14px}.skill-dots .dot-on{background-color:var(--color-accent)}img.about-me{border-radius:5px}span.orange{color:#c9701f}div.icon-header svg{display:inline;height:50px;padding-right:5px}div.icon-header h2{display:inline;vertical-align:15px}svg.skills .st0{fill:#2f807b;stroke:#000000;stroke-miterlimit:10;stroke-width:5px}svg.skills .st1{fill:#2f807b;stroke:#000000;stroke-miterlimit:10;stroke-width:12px}svg.skills .st2{clip-path:url("#SVGID_2")}svg.skills .st3{fill:#000000}svg.training .st0{fill:#2e3181;stroke:#000000;stroke-miterlimit:10;stroke-width:5px}svg.training .st1{fill:#010101}.trivia circle{fill:#7b2e2f}.hardships circle{fill:#f7941e}.contact circle{fill:#2f383b}.project{border-radius:var(--radius-sm);border-top:10px solid var(--color-accent-muted);display:grid;grid-template-columns:minmax(0,2fr) minmax(16rem,1fr);margin:18px 0;position:relative;isolation:isolate}.project .project-image{display:block;min-width:0}.project picture{display:block;height:100%}.project img{display:block;width:100%;height:100%;min-height:260px;object-fit:cover;filter:brightness(75%)}.project .description{background:var(--color-bg);box-sizing:border-box;padding:20px 20px 60px 12px;position:relative;min-width:0}.project .description::before{content:"";position:absolute;inset:0 100% 0 auto;width:128px;background:url("../img/projects/halftone-side.c403c6de4cbe.svg") right top/128px 8px repeat-y;pointer-events:none}.project:not(:has(.description)) .project-image{grid-column:1/-1}.project .project-caption{display:flex;align-items:flex-end;grid-column:1/-1;border-bottom:10px solid var(--color-accent-muted);border-radius:0 0 var(--radius-sm) var(--radius-sm);margin-top:-44px;position:relative;z-index:2}.project h2{background:var(--color-accent-muted);box-sizing:border-box;flex:0 1 auto;max-width:calc(100% - 12rem);margin:0 36px 0 0;padding:5px 16px 0;position:relative;font-size:clamp(1.1rem, 2.5vw, 1.65rem);line-height:1.25;overflow-wrap:anywhere}.project h2::after{content:"";position:absolute;inset:0 auto 0 100%;width:32px;background:var(--color-accent-muted);clip-path:polygon(0 0,100% 100%,0 100%)}.project h2 a,.project h2 a:visited{color:var(--color-text)}.project h2 a:hover{color:var(--color-white)}.project .date{color:var(--color-text);flex:0 0 auto;margin-left:auto;padding:0 8px 2px;font-size:.7em;line-height:1.4}@media (max-width:47.99em){.project{grid-template-columns:minmax(0,1fr)}.project img{min-height:180px;max-height:260px}.project .description{padding:12px 16px 20px}.project .description::before{inset:auto 0 100%;width:auto;height:128px;background:url("../img/projects/halftone-top.b02bf0b84217.svg") left bottom/8px 128px repeat-x}.project .project-caption{flex-wrap:wrap;margin-top:0;gap:8px 0}.project h2{max-width:calc(100% - 32px)}.project .date{padding-top:4px}}.no-projects{margin-left:auto;margin-right:auto;width:50%}.hexagon{fill:var(--color-accent-muted)}.empty-projects{padding:2em 0;text-align:center}.empty-projects p{margin:1em 0}.projects-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;padding:14px 0;border-bottom:1px solid var(--color-surface-2);font-size:.75em}.projects-toolbar .result-summary{color:var(--color-text);margin:0}.result-summary strong{color:var(--color-accent);font-size:1.15em}.results-page{margin-left:12px;padding-left:12px;border-left:1px solid var(--color-border)}.project-sort{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.sort-label{color:var(--color-text)}.sort-options{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.sort-options>*{padding:7px 12px}.sort-options>a{color:var(--color-text);background:var(--color-surface)}.sort-options>a:hover{background:var(--color-surface-2);text-decoration:none}.sort-options .selected-sort{background:var(--color-accent-muted);color:var(--color-text);font-weight:700}.filter-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 0 4px;font-size:.7em}.filter-chip{display:inline-flex;align-items:center;gap:12px;border:1px solid var(--color-accent-muted);border-radius:20px;padding:6px 12px;background:var(--color-surface)}a.filter-chip{color:var(--color-text);overflow-wrap:anywhere}a.filter-chip:hover{border-color:var(--color-accent);text-decoration:none}.filter-chip span{color:var(--color-accent);font-size:1.25em}a.clear-all-filters{color:var(--color-text);text-decoration:underline;padding:6px}.project-search{flex:1 1 16rem;position:relative;min-width:0}.search-bar .project-search .search{width:100%;min-width:0;height:100%;margin:0;padding-right:36px}.project-search input::-webkit-search-cancel-button{-webkit-appearance:none}.clear-search{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:0 0;color:var(--color-text);padding:4px 8px;cursor:pointer}.clear-search:hover{color:var(--color-accent)}.clear-search[hidden]{display:none}.search-bar .search,.search-bar .submit{min-height:38px}@media (max-width:47.99em){.filter-chips,.projects-toolbar{padding-inline:10px;box-sizing:border-box}.search-bar .project-search{flex-basis:100%}}.project .sub-title{grid-column:1/-1;color:var(--color-text);margin:4px 16px 0;font-size:.8em}.project .featured-badge{background-color:var(--color-accent);border-radius:var(--radius-sm);color:var(--color-text-inverse);font-size:.7em;font-weight:700;letter-spacing:.05em;margin:0;padding:1px 8px;position:absolute;right:5px;text-transform:uppercase;top:-26px;z-index:4}.project .description p{margin:0}.search-bar{gap:6px;align-content:stretch;align-items:stretch;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;min-height:1em;gap:4px}.search-bar .search{background:var(--color-surface) url("../img/projects/search.1f45e6782dc1.svg") no-repeat 5px 5px;background-position:10px center;flex:20 10 auto;margin-right:2px;padding-left:40px;transition:background-image .1s ease-in-out,border .1s ease-in-out}.search-bar .search:focus,.search-bar .search:hover{background-image:url("../img/projects/search-focus.700ee0f1256f.svg")}.search-bar select{flex:3 3 auto;width:200px}.search-bar .submit{background-color:var(--color-accent-muted);color:var(--color-text);cursor:pointer;flex:5 1 auto;margin-left:2px;transition:background-color .1s ease-in-out,color .1s ease-in-out}.search-bar .submit:hover{background-color:var(--color-accent);color:var(--color-text-inverse)}.search-bar>*{min-width:0}.search-bar .search{min-width:12em;flex:1 1 16rem;width:100%}.search-bar .submit{flex:0 1 auto}.image-slider__interactive[hidden],[data-slider-fallback][hidden]{display:none}#main-content{background-image:radial-gradient(ellipse at 50% 0,rgba(0,168,255,.035),transparent 65%)}.box,.project,.project-toc,a.project-neighbor{box-shadow:var(--shadow-surface),inset 0 1px 0 rgba(255,255,255,.035)}footer{box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}@media print{@page{margin:1.5cm}body{background:#fff;color:#000}span.orange,span.random-color{color:#000!important}#back-to-top,.background,.copy-code,.hamburger,.no-projects,.result-summary,.search-bar,.skip-link,.sort-links,.touch-nav,body>header,footer{display:none!important}.content a[href^=http]::after{content:" (" attr(href) ")";font-size:.85em;word-break:break-all}.content a[href^="#"]::after,.content a[href^="/"]::after{content:none}.CodeMirror,.CodeMirror-scroll,.cm,code,pre{max-height:none!important;height:auto!important;overflow:visible!important;white-space:pre-wrap!important;word-break:break-word}img{max-width:100%!important}h1,h2,h3,h4{break-after:avoid}blockquote,figure,pre,table{break-inside:avoid}.benchmark-verdict.is-pass,.contrast-badge.is-pass,.data-table caption,.project .featured-badge,.search-bar .clear-filters,.skill .progress .percentage{color:#005a80}.data-table .table-swatch{border-color:#000}.legend-hex button[data-copied],.swatch-chip[data-copied]{box-shadow:none}.project-reading-layout{display:block}.image-slider__interactive,.project-toc{display:none}[data-slider-fallback][hidden]{display:grid}#main-content{background-image:none}.box,.project,.project-toc,a.project-neighbor,footer{box-shadow:none}}.utility-menu details{position:relative}.utility-menu summary{cursor:pointer}.utility-menu-list{position:absolute;right:0;min-width:150px;list-style:none;margin:0;padding:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-surface);z-index:110}.utility-menu-list a{display:block;padding:10px;color:var(--color-text)}.utility-menu-list a:hover{color:var(--color-accent);background:var(--color-surface-2);text-decoration:none}@media (max-width:47.99em){.touch-navigation .utility-menu-list{position:static;margin-top:10px}}.utility-menu summary::after{content:" ▾";font-size:.7em}.hamburger>span{display:block}.project-view-toggle{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .75rem;border:1px solid var(--color-accent-muted);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer}.project-view-toggle[hidden]{display:none}.project-view-toggle[aria-pressed=true]{border-color:var(--color-accent);background:#142c38;color:var(--color-white)}.project-view-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}@media screen{html[data-projects-view=compact] .project-list .project{display:grid;grid-template-columns:8rem minmax(0,1fr);grid-template-rows:auto auto;gap:.5rem 1rem;margin:.5rem 0;padding:.75rem;border:1px solid var(--color-accent-muted);border-radius:var(--radius-sm);background:var(--color-surface);box-sizing:border-box}html[data-projects-view=compact] .project-list .project .project-image{grid-column:1;grid-row:1/span 2;width:100%;min-height:6rem}html[data-projects-view=compact] .project-list .project img{height:100%;min-height:0;max-height:9rem;border-radius:var(--radius-sm);filter:none;object-fit:cover}html[data-projects-view=compact] .project-list .project .project-caption{grid-column:2;grid-row:1;align-self:start;flex-wrap:wrap;align-items:baseline;gap:.35rem 1rem;border:0;margin:0;min-width:0}html[data-projects-view=compact] .project-list .project h2{background:0 0;max-width:100%;margin:0;padding:0;font-size:1.1rem}html[data-projects-view=compact] .project-list .description::before,html[data-projects-view=compact] .project-list .project h2::after{display:none}html[data-projects-view=compact] .project-list .project .date{margin:0;padding:0;font-size:.65rem}html[data-projects-view=compact] .project-list .project .description{grid-column:2;grid-row:2;padding:0;background:0 0;font-size:.85rem;line-height:1.5;overflow-wrap:anywhere}html[data-projects-view=compact] .project-list .description p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}html[data-projects-view=compact] .project-list .project .sub-title{display:none}html[data-projects-view=compact] .project-list .featured-badge{position:static;grid-column:2;justify-self:start;font-size:.6rem}.project-list>.project{content-visibility:auto;contain-intrinsic-size:auto 26rem}html[data-projects-view=compact] .project-list>.project{contain-intrinsic-size:auto 10rem}}@media screen and (max-width:30em){html[data-projects-view=compact] .project-list .project{grid-template-columns:4.5rem minmax(0,1fr);gap:.5rem .75rem;padding:.6rem}html[data-projects-view=compact] .project-list .project h2{font-size:1rem}html[data-projects-view=compact] .project-list .project .description{font-size:.75rem}}select.dropdown{appearance:auto;color-scheme:dark;min-width:0;padding:.6rem .8rem;font:inherit;font-size:.8em}select.dropdown.is-filtered{border-color:var(--color-accent)}select.dropdown:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.animation-paused,.animation-paused::after,.animation-paused::before{animation-play-state:paused!important}