@font-face{font-display:swap;font-family:Lato;font-style:normal;font-weight:400;src:url(../../../fonts/lato-v25-latin-regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:Lato;font-style:normal;font-weight:700;src:url(../../../fonts/lato-v25-latin-700.woff2)format("woff2")}@font-face{font-display:swap;font-family:Titillium Web;font-style:normal;font-weight:300;src:url(../../../fonts/titillium-web-v19-latin-300.woff2)format("woff2")}@font-face{font-display:swap;font-family:Titillium Web;font-style:normal;font-weight:600;src:url(../../../fonts/titillium-web-v19-latin-600.woff2)format("woff2")}body,h1,h2,h3,h4,h5,h6{font-family:-apple-system,BlinkMacSystemFont,Avenir,Avenir Next,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-weight:400}body,h6{line-height:1.6}html{box-sizing:border-box;margin:0;padding:0;font-size:62.5%}body{letter-spacing:.01em;font-size:1.6em}h1,h2,h3{letter-spacing:-.1rem}h1{font-size:4rem;line-height:1.2}h2{font-size:3.6rem;line-height:1.25}h3{font-size:3rem;line-height:1.3}h4{letter-spacing:-.08rem;font-size:2.4rem;line-height:1.35}h5{letter-spacing:-.05rem;font-size:1.8rem;line-height:1.5}h6{letter-spacing:0;font-size:1.5rem}@media (width>=550px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2.4rem}h6{font-size:1.5rem}}a{color:#104cfb;transition:all .1s}a:hover{color:#222}[type=submit],button{color:#f5f5f5;background:#111;border:none;border-radius:2px;margin:1rem 0;padding:1.1rem 3.5rem;font-size:1.3rem;transition:all .2s}[type=submit].outline,button.outline{color:#111;background:0 0;border:1.5px solid #111;padding:1.1rem 3.5rem}[type=submit]:hover,button:hover{background:#222}[type=submit].outline:hover,button.outline:hover{color:#444;background:0 0;border:1.5px solid #444}[type=submit]:focus,button:focus{outline:0}[type=submit]:active,button:active{transform:scale(.99)}input[type=email],input[type=file],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],select,textarea,textarea[type=text]{border:1px solid #a4a4a4;border-radius:2px;width:100%;max-width:100%;margin:1rem 0;font-size:1.3rem;transition:all .2s}input[type=email]:hover,input[type=file],input[type=number]:hover,input[type=password]:hover,input[type=search]:hover,input[type=tel],input[type=text]:hover,select:hover,textarea:hover,textarea[type=text]:hover{border:1px solid #111}input[type=email]:focus,input[type=file],input[type=number],input[type=password]:focus,input[type=search]:focus,input[type=tel],input[type=text]:focus,select:focus textarea:focus,textarea[type=text]:focus{border:1px solid #104cfb;outline:0}input[type=email],input[type=file],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],select{padding:1.1rem}textarea,textarea[type=text]{height:10rem;padding:14px 20px}.row{flex-flow:wrap;justify-content:space-between;display:flex}.row>:first-child{margin-left:0}.row>:last-child{margin-right:0}.col{flex:1}.col,[class*=\ col-],[class^=col-]{margin:1rem}.col-1{flex:1}.col-2{flex:2}.col-3{flex:3}.col-4{flex:4}.col-5{flex:5}.col-6{flex:6}.col-7{flex:7}.col-8{flex:8}.col-9{flex:9}.col-10{flex:10}.col-11{flex:11}.col-12{flex:12}ul{list-style:inside circle}ol{list-style:inside decimal}.table{border-collapse:collapse;border-spacing:0;text-align:left;border:none;width:100%}.table td,.table th{vertical-align:middle;padding:12px 4px}.table thead{border-bottom:2px solid #333030}@media screen and (width<=768px){.col,[class*=\ col-],[class^=col-]{flex:0 0 100%;margin:0}.table.responsive{display:block;position:relative}.table.responsive td,.table.responsive th{margin:0}.table.responsive thead{float:left;border:0;display:block}.table.responsive thead tr{border-right:2px solid #333030;padding:0 10px 0 0;display:block}.table.responsive th{text-align:right;display:block}.table.responsive tbody{white-space:nowrap;display:block;overflow-x:auto}.table.responsive tbody tr{display:inline-block}.table.responsive td{text-align:left;min-height:16px;display:block}.table.responsive tr{padding:0 10px}}.pull-right{float:right}.pull-left{float:left}.text-center{text-align:center}.full-screen{width:100%;min-height:100vh}.vertical-align{align-items:center;display:flex}.horizontal-align{justify-content:center;display:flex}.center,.right{align-items:center;display:flex}.center{justify-content:center}.right{justify-content:flex-end}.left{justify-content:flex-start;align-items:center;display:flex}.fixed{width:100%;position:fixed}.nowrap{white-space:nowrap}@media screen and (width<=400px){.hide-phone{display:none}}@media screen and (width<=768px){.hide-tablet{display:none}}code{white-space:nowrap;border-radius:4px;font-family:Consolas,Monaco,Menlo,monospace;font-size:90%}pre>code{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;padding:1rem 1.5rem;display:block}.nav,.nav-brand,.nav-menu{display:flex}.nav{flex-wrap:wrap;align-items:center;padding:1rem;position:relative}.nav-menu{flex-flow:row;flex:1 0 auto}.nav-item{padding:1rem 2rem}.nav-logo{font-size:2rem;font-weight:bolder;line-height:0}:root{--text-xs:1.2rem;--text-sm:1.4rem;--text-base:1.6rem;--text-md:1.8rem;--text-lg:2.2rem;--text-xl:2.8rem;--text-2xl:4rem;--text-3xl:6.4rem;--fg:#000;--fg-2:#444;--fg-3:#666;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--scanlines:repeating-linear-gradient(to bottom, #ffffff0a 0 1px, transparent 1px 3px);--vignette:radial-gradient(ellipse at center, transparent 50%, #0000008c 100%);--grid-on-light:linear-gradient(#00000017 1px, transparent 1px), linear-gradient(90deg, #00000017 1px, transparent 1px), linear-gradient(#0000000b 1px, transparent 1px), linear-gradient(90deg, #0000000b 1px, transparent 1px);--grid-on-dark:linear-gradient(#ffffff17 1px, transparent 1px), linear-gradient(90deg, #ffffff17 1px, transparent 1px), linear-gradient(#ffffff0b 1px, transparent 1px), linear-gradient(90deg, #ffffff0b 1px, transparent 1px);--grid-size:120px 120px, 120px 120px, 24px 24px, 24px 24px;--surface-light:none;--surface-light-size:auto;--surface-dark:var(--vignette), var(--scanlines);--surface-dark-size:auto}:root[data-surface=grid]{--surface-light:var(--grid-on-light);--surface-light-size:var(--grid-size);--surface-dark:var(--vignette), var(--grid-on-dark);--surface-dark-size:100% 100%, var(--grid-size)}:root[data-surface=story]{--surface-dark:var(--vignette);--surface-dark-size:auto}:root[data-surface=story] .skills{--surface-dark:var(--vignette), var(--scanlines)}:root[data-surface=story] .projects{--surface-light:radial-gradient(circle, #0003 1px, transparent 1.5px);--surface-light-size:24px 24px}:root[data-surface=story] .libs{--surface-dark:var(--vignette), var(--grid-on-dark);--surface-dark-size:100% 100%, var(--grid-size)}:root[data-surface=story] .work{--surface-light:radial-gradient(circle at 14px 12px, #00000017 4px, transparent 4.5px), radial-gradient(circle at calc(100% - 14px) 12px, #00000017 4px, transparent 4.5px), repeating-linear-gradient(#00000008 0 72px, transparent 72px 144px);--surface-light-size:100% 24px, 100% 24px, auto}:root[data-surface=story] .atlas{--surface-dark:var(--vignette), url(../../../assets/contours.svg);--surface-dark-size:100% 100%, 1600px 600px}:root[data-surface=story] .films{background-image:linear-gradient(90deg,#00000014 0 12px,#0000 12px),linear-gradient(90deg,#00000014 0 12px,#0000 12px);background-position:8px 5px,8px calc(100% - 5px);background-repeat:repeat-x;background-size:28px 9px}html{overflow-x:hidden}body{background:#000;width:100%;margin:0;font-family:Lato,Helvetica Neue,Helvetica,Arial,sans-serif;position:relative;overflow-x:clip}section:where(.band){background-color:#f2f2f2;background-image:var(--surface-light);background-size:var(--surface-light-size);background-position:top;padding-top:3em;padding-bottom:3em}h1,h2,h3,h4,h5,h6{text-transform:uppercase;font-family:Lato,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700}h1,h2{color:#fff;font-family:Titillium Web,Helvetica,Arial,sans-serif;font-weight:600}h3{font-size:var(--text-2xl);letter-spacing:.02em;text-align:center;color:#444;margin:0 0 .8125rem;line-height:1.3}h4,h5{letter-spacing:normal}@media (width<=549px){h3{font-size:var(--text-xl)}}section.inverse{background-color:#222;background-image:var(--surface-dark);background-size:var(--surface-dark-size);color:#fff;--fg:#fff;--fg-2:#bbb;--fg-3:#999}section.inverse h1,section.inverse h2,section.inverse h3,section.inverse h5,section.inverse h6,section.inverse p{color:#fff}.chips{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.chip{font-family:var(--font-mono);font-size:var(--text-xs);color:#000;border:1px solid #000;padding:2px 7px;font-weight:600;line-height:1.4;text-decoration:none;transition:color .2s,background-color .2s}.chip:hover{color:#fff;background-color:#000;text-decoration:none}section.inverse .chip{color:#fff;border-color:#fff}section.inverse .chip:hover{color:#000;background-color:#fff}code{font-family:var(--font-mono)}.redroom-floor{background:linear-gradient(135deg, var(--zigzag) 25%, transparent 25%) -30px 0 / 60px 60px, linear-gradient(225deg, var(--zigzag) 25%, transparent 25%) -30px 0 / 60px 60px, linear-gradient(315deg, var(--zigzag) 25%, transparent 25%) 0 0 / 60px 60px, linear-gradient(45deg, var(--zigzag) 25%, transparent 25%) 0 0 / 60px 60px}@keyframes doom-shake{0%,to{translate:0}25%{translate:1px -1px}50%{translate:-1.5px 1px}75%{translate:1px 1.5px}}.container{width:95%;max-width:1440px;margin:0 auto}.reveal{transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0s)}.reveal--fade-up{opacity:0;transform:translateY(40px)}.reveal--fade-left{opacity:0;transform:translate(-40px)}.reveal--fade-right{opacity:0;transform:translate(40px)}.reveal--zoom{opacity:0;transform:scale(.92)}.reveal--fade{opacity:0;transform:none}.reveal--visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}
