@font-face{font-display:swap;font-family:Hack;font-style:normal;font-weight:400;src:url(/fonts/hack/hack-regular-subset.woff2)format("woff2"),url(/fonts/hack/hack-regular-subset.woff)format("woff")}@font-face{font-display:swap;font-family:Hack;font-style:italic;font-weight:400;src:url(/fonts/hack/hack-italic-subset.woff2)format("woff2"),url(/fonts/hack/hack-italic-subset.woff)format("woff")}@font-face{font-display:swap;font-family:Hack;font-style:normal;font-weight:700;src:url(/fonts/hack/hack-bold-subset.woff2)format("woff2"),url(/fonts/hack/hack-bold-subset.woff)format("woff")}@font-face{font-display:swap;font-family:Hack;font-style:italic;font-weight:700;src:url(/fonts/hack/hack-bolditalic-subset.woff2)format("woff2"),url(/fonts/hack/hack-bolditalic-subset.woff)format("woff")}:root{--bg:#111;--blue:#00aff4;--cyan:#00e7ef;--font-mono:Hack, monospace;--gray:#999;--green:#25ec35;--grid-size:10vw;--grid-color:#00abff80;--grid-width:1.5px;--nav:clamp(5rem, 12lvh, 8rem);--orange:#ff8538;--padding:clamp(2rem, 7.5lvw, 7rem);--pink:#ff68ac;--purple:#df8fc7;--rainbow:linear-gradient(96deg, #fb514b 0%, #fba637 18%, #f6dc31 32%, #2fda68 52%, #2ecfef 68%, #6c62f8 84%, #d66af0 100%);--secondary:#444;--tertiary:#333;--text:#eee7db;--yellow:#fff600}*,:before,:after{box-sizing:border-box}html,body{color:var(--text);margin:0;font-size:16px}a{color:var(--text);text-underline-offset:12.5%;text-decoration:underline;text-decoration-thickness:calc(1em/13.3333)}mark{background-color:var(--orange)}body{background-color:var(--bg)}header{--grid-row:var(--grid-size);--grid-columns:max(1, round(nearest, calc(100vw / var(--grid-size)), 1));--grid-rows:max(1, round(nearest, calc(100lvh / var(--grid-size)), 1));background-color:var(--bg);background-image:linear-gradient(to bottom, transparent 0%, var(--bg) 100%), linear-gradient(to right, var(--grid-color) 0 var(--grid-width), transparent var(--grid-width)), linear-gradient(to bottom, var(--grid-color) 0 var(--grid-width), transparent var(--grid-width));background-size:100% 100%, var(--grid-size) calc(100% + 12px), 100% var(--grid-size);width:100%;height:100svh;box-shadow:inset 0 0 0 var(--grid-width) var(--bg);isolation:isolate;grid-template-rows:2fr 1fr;grid-template-columns:1fr;display:grid;position:relative;overflow:hidden}header #shapes{pointer-events:none;z-index:0;position:absolute;inset:0}header #shapes .shape,header #shapes .group{display:block;position:absolute}header #shapes .shape{animation:drift var(--drift-duration) ease-in-out var(--drift-delay) infinite alternate;opacity:.88}header #shapes .left{width:clamp(10rem,18vw,22rem);height:clamp(8rem,18vw,20rem);top:clamp(2rem,5lvh,5rem);left:clamp(-5rem,-3vw,-2rem)}header #shapes .left .yellow{--drift-delay:-9s;--drift-duration:16s;--drift-rotation:3deg;--drift-x:-2rem;--drift-y:-1rem;background-color:var(--yellow);clip-path:polygon(0 29%,48% 0,100% 62%,21% 100%);width:91%;height:72%;inset:0 auto auto 0}header #shapes .left .orange{--drift-delay:-3s;--drift-duration:30s;--drift-rotation:-6deg;--drift-x:1.5rem;--drift-y:2.5rem;background-color:var(--orange);clip-path:polygon(0 0,78% 0,100% 55%,15% 100%);width:49%;height:67%;top:42%;left:45%}header #shapes .right{width:clamp(8rem,15vw,20rem);height:clamp(10rem,19vw,20rem);top:clamp(1rem,4lvh,4rem);right:-2rem}header #shapes .right .purple{--drift-delay:-15s;--drift-duration:26s;--drift-rotation:-2deg;--drift-x:-.8rem;--drift-y:-1.5rem;background-color:var(--purple);clip-path:polygon(0 10%,91% 0,100% 82%,34% 92%);width:88%;height:70%;top:0;left:10%}header #shapes .right .pink{--drift-delay:-22s;--drift-duration:27s;--drift-rotation:3deg;--drift-x:-2rem;--drift-y:2rem;background-color:var(--pink);clip-path:polygon(0 31%,61% 0,100% 100%);width:76%;height:72%;top:39%;left:0}header #shapes>.blue{--drift-delay:-17s;--drift-duration:30s;--drift-rotation:10deg;--drift-x:-2rem;--drift-y:1.5rem;background-color:var(--blue);clip-path:polygon(0 100%,39% 18%,83% 0,100% 66%);width:clamp(8rem,15vw,18rem);height:clamp(5rem,10vw,14rem);top:64%;left:clamp(3rem,8vw,10rem)}header #shapes>.green{--drift-delay:-7s;--drift-duration:25s;--drift-rotation:-10deg;--drift-x:-2rem;--drift-y:-1rem;background-color:var(--green);clip-path:polygon(0 8%,63% 0,100% 100%,0 77%);width:clamp(6rem,10vw,12rem);height:clamp(8rem,16vw,19rem);top:57%;left:78%}header #shapes>.cyan{--drift-delay:-10s;--drift-duration:18s;--drift-rotation:-7.5deg;--drift-x:0;--drift-y:2rem;background-color:var(--cyan);clip-path:polygon(82% 0,100% 100%,0 81%);width:clamp(3rem,4vw,5rem);height:clamp(4rem,7vw,8rem);top:71%;left:65%}header hgroup{isolation:isolate;z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:2lvh;display:flex;position:relative}header hgroup h1{letter-spacing:-.5lvw;text-transform:uppercase;margin:10lvh 0 0;font-family:Futura;font-size:clamp(4rem,min(14lvh,12lvw),12rem);position:relative}header hgroup h1 strong{color:#0000;filter:url(/img/glow.svg?v=2#glow);text-fill-color:transparent;z-index:1;background:linear-gradient(#9dc5f9 0%,#ece9fe 40%,#fff 100%);-webkit-background-clip:text;background-clip:text;margin-left:-.75lvw;display:block;position:relative}header hgroup h2{color:#fff;font-family:var(--font-mono);text-align:center;z-index:1;font-size:clamp(1.125rem,4lvw,2.25rem);font-weight:400;line-height:1.5}header hgroup h2>span{display:block}header hgroup #rainbow{background-image:var(--rainbow);filter:blur(min(10lvw,96px));opacity:.35;z-index:0;border-radius:6rem;width:min(75rem,90lvw);height:25lvh;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%)translateY(-40%)}nav{height:var(--nav);margin-top:calc(-1 * var(--nav));padding:2.5lvh var(--padding) 0;z-index:2;justify-content:center;align-items:flex-start;animation:1s cubic-bezier(.22,1,.36,1) both fade;display:flex;position:relative}nav menu{font-family:var(--font-mono);text-transform:uppercase;flex-direction:row;justify-content:center;align-items:flex-end;gap:max(1.5rem,5lvw);margin:0;padding:0;font-size:clamp(1.25rem,3lvw,2.25rem);display:flex}nav menu li{display:flex}nav menu li:first-child{display:none}nav.scroll{-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);border-bottom:1px solid var(--tertiary);height:max(4rem,6lvh);left:0;top:var(--nav);background:#11111180;justify-content:flex-start;align-items:center;width:100lvw;padding:0 2rem;animation:.4s cubic-bezier(.22,1,.36,1) both drop;display:flex;position:fixed}nav.scroll menu{align-items:center;gap:min(1.5rem,5lvw);margin-top:-2px;font-size:1.125rem}nav.scroll menu li:first-child{display:flex}nav.scroll menu li:first-child span{position:relative;top:.2rem}nav.leaving{animation:.4s cubic-bezier(.64,0,.78,0) both rise}fieldset{font-family:var(--font-mono);background:#222;border:2px solid #000;flex-direction:column;gap:1rem;margin:2rem -3px 0;padding:2rem;display:flex;box-shadow:.5rem .5rem #000}fieldset input,fieldset select,fieldset textarea{margin:0 -2px 1rem}label{text-transform:uppercase;font-weight:700;display:block}legend{text-transform:uppercase;background:#000;padding:.5rem 1rem;font-size:1.1rem;font-weight:700}form .group{flex-direction:row;gap:.75rem;width:100%;margin:0 -2px;display:flex}form .group button{flex-grow:1}button,input,select,textarea{font:inherit;border-radius:0;min-height:3rem;padding:1rem}input,select,textarea{background-color:var(--secondary);color:var(--text);border:2px solid #000;width:100%;min-width:0;box-shadow:.25rem .25rem #000}:is(input,select,textarea)::placeholder{color:var(--gray)}:is(input,select,textarea):focus-visible{box-shadow:none;outline:2px solid var(--cyan);outline-offset:2px}button{background-color:var(--cyan);color:var(--bg);cursor:pointer;font-family:var(--font-mono);text-transform:uppercase;white-space:nowrap;border:2px solid #000;font-weight:700;position:relative;box-shadow:.25rem .25rem #000,inset .125rem .125rem #59ffff}button:hover{background-color:#0ff;box-shadow:.25rem .25rem #000,inset .125rem .125rem #aff}button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}button:active{box-shadow:none;outline:none;margin:.25rem -.25rem -.25rem .25rem}button+button{background:var(--tertiary);box-shadow:.25rem .25rem 0 0 #000, inset .125rem .125rem 0 0 var(--secondary);color:var(--text)}button+button:hover{background:var(--secondary);box-shadow:.25rem .25rem #000,inset .125rem .125rem #555}main{color:var(--text)}main article{min-height:100svh}main article h3{color:var(--cyan);letter-spacing:-.4lvw;text-shadow:0 2px 1px #000;text-transform:uppercase;margin:5lvw 5lvw clamp(2.25rem,6lvw,4.5rem) 0;font-family:Futura,sans-serif;font-size:clamp(2.25rem,5lvw,7rem);line-height:1}main article p{font-family:var(--font-mono);margin:0;font-size:clamp(.95rem,1.75lvw,1.4rem);line-height:1.5}main article p+p{margin-top:1.5rem}main article p:last-of-type{margin-bottom:-.375rem}main article p+small{margin-top:3rem}main article small{font-family:var(--font-mono);flex-direction:row;gap:.75rem;font-size:clamp(.8rem,1.25lvw,1rem);line-height:1.5;display:flex}main .columns{grid-template-rows:1fr auto;grid-template-areas:"primary""secondary";gap:clamp(3rem,7.5lvw,7rem);max-width:120rem;margin-inline:auto;display:grid}main .columns section{grid-area:primary;align-self:end}main .columns aside{grid-area:secondary;align-self:end}#about{padding:var(--padding);justify-content:flex-end;display:flex}#about section p strong:first-of-type{color:var(--blue)}#about section p strong:last-of-type{color:var(--pink)}#about aside{font-family:var(--font-mono);text-transform:uppercase}#about aside h4{color:var(--gray);letter-spacing:.14em;margin:0 0 clamp(1.15rem,2lvw,1.5rem);font-size:clamp(.95rem,1.5lvw,1.125rem);font-weight:400}#about aside dl{margin:0;font-size:clamp(.8rem,1.5lvw,1.125rem)}#about aside dl>div{grid-template-columns:max-content minmax(.75rem,1fr) max-content;align-items:baseline;gap:.75rem;display:grid}#about aside dl>div+div{margin-top:.75rem}#about aside dl>div:before{content:"";opacity:.5;background-image:radial-gradient(circle,currentColor 0 1px,#0000 1.25px);background-position:0 100%;background-repeat:repeat-x;background-size:.5rem .25rem;grid-area:1/2;align-self:center;min-width:0;height:.9rem}#about aside dt,#about aside dd{margin:0}#about aside dt{text-align:left;grid-area:1/1}#about aside dd{text-align:right;grid-area:1/3}#projects{padding:var(--padding);justify-content:flex-end;display:flex}#projects h3{color:var(--purple)}#projects .columns{width:100%}#projects .columns aside{grid-area:primary;padding-top:10lvh}#projects .columns section{grid-area:secondary;width:100%}#projects ul{gap:clamp(2rem,3lvw,4rem);margin:0;padding:2rem 0 0;list-style:none;display:grid}#projects .project{filter:drop-shadow(.5rem .5rem 0 var(--shadow));--accent:var(--purple);--background:#444;--color:var(--text);--icon:#000;--overlay:#333;--shadow:#000}#projects .project.kithkin{--accent:#00c8cf;--background:#e2dacb;--color:var(--bg);--icon:#008e90;--overlay:#f2eee3;--shadow:#807c74}#projects .project a{background-color:var(--background);color:var(--color);grid-template:"icon name""date date""body body"/clamp(3rem,9lvw,6rem) minmax(0,1fr);place-items:center start;gap:clamp(1.25rem,3vw,2.25rem);margin:0 -4lvw;padding:clamp(2rem,6lvw,3rem);text-decoration:none;display:grid}#projects .project a.trapezoid{clip-path:polygon(3% 5%,96% 1%,100% 100%,0 95%)}#projects .project a.parallelogram{clip-path:polygon(1% 3%,96% 2%,100% 100%,3% 97%)}#projects .project a img{aspect-ratio:1;border:2px solid var(--icon);box-shadow:4px 4px 0 var(--icon);image-rendering:pixelated;object-fit:contain;border-radius:2px;grid-area:icon;width:100%;display:block}#projects .project a h4{letter-spacing:-.05em;text-transform:uppercase;grid-area:name;margin:0 0 0 -.25rem;font-family:Futura,sans-serif;font-size:clamp(1.875rem,4lvw,2.5rem);line-height:1}#projects .project a time{background:var(--overlay);border:2px solid var(--accent);color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;white-space:nowrap;border-radius:2px;grid-area:date;justify-content:center;align-items:center;padding:.4rem .6rem;font-size:.85rem;font-weight:900;line-height:1;display:flex}#projects .project a p{grid-area:body;margin:0;font-size:.95rem;line-height:1.5}#projects .project:has(a:active){filter:none}#projects .project:has(a:active) a{transform:translate(.5rem)translateY(.5rem)}#contact{padding:var(--padding);justify-content:flex-end;display:flex}#contact h3{color:var(--yellow);margin-top:10lvh}footer{border-top:1.5px solid var(--tertiary);isolation:isolate;padding:6rem var(--padding) 4rem;--synth-w:2rem;--synth-h:1rem;margin-top:6rem;position:relative;overflow:hidden}footer.synthgrid{background: linear-gradient(to bottom,  var(--bg) 0%, #3e315d 35%, #8b477a 52%, #21152f 80%)}footer.synthgrid:before{background-image:repeating-linear-gradient(to right, transparent 0 calc(var(--synth-w) - 1px), #ff61d8 calc(var(--synth-w) - 1px) var(--synth-w)), repeating-linear-gradient(to bottom, transparent 0 calc(var(--synth-h) - 1px), #ff61d8 calc(var(--synth-h) - 1px) var(--synth-h));content:"";filter:drop-shadow(0 0 .25rem #ff4fd8)drop-shadow(0 0 .5rem #ff4fd899);opacity:.75;pointer-events:none;transform-origin:top;z-index:-1;position:absolute;inset:50% 0 0;transform:perspective(20rem)rotateX(72deg);-webkit-mask-image:linear-gradient(#0000,#0009 8%,#000 35%);mask-image:linear-gradient(#0000,#0009 8%,#000 35%)}footer section{z-index:1;grid-template-areas:"name""line""form";gap:1rem;max-width:120rem;margin-inline:0;display:grid}footer big{color:var(--yellow);font-family:var(--font-mono);text-transform:uppercase;grid-area:name;margin:0 0 .5rem;font-size:1rem}footer big>span{color:var(--gray)}footer strong{letter-spacing:-.05rem;text-transform:uppercase;grid-area:line;margin:0;font-family:Futura,sans-serif;font-size:1.5rem;line-height:1.1}footer aside{z-index:1;grid-template-areas:"stone""links""legal";align-items:center;gap:1.5rem;width:100%;max-width:120rem;margin:8rem auto 0;display:grid}footer aside>a{grid-area:stone;padding-top:.2rem;font-size:1.5rem;text-decoration:none}footer aside ul{font-family:var(--font-mono);text-transform:uppercase;flex-wrap:wrap;grid-area:links;gap:1rem 1.75rem;margin:0;padding:0;font-size:1rem;list-style:none;display:flex}footer aside small{font-size:1rem;font-family:var(--font-mono);text-transform:uppercase;grid-area:legal;margin:1rem 0 0}footer form{font-family:var(--font-mono);grid-area:form;gap:1rem;margin:2rem 0 0;display:grid}footer form em{color:var(--purple);text-transform:uppercase;font-size:1rem;font-style:normal;font-weight:700}footer form p{color:var(--text);max-width:44rem;margin:0 0 1rem;font-size:clamp(.875rem,1.4lvw,1rem);line-height:1.6}footer form .group{flex-direction:column}@supports (opacity:calc(1px / 1px)){header{--grid-row:calc(100% / var(--grid-rows));background-size:100% 100%, calc(100% / var(--grid-columns)) 100%, 100% calc(100% / var(--grid-rows))}}@media (width>=768px){main article p{line-height:1.6}#projects .project a{grid-template-areas:"icon name date""icon body body";align-items:start;transition:margin .1s ease-in}#projects .project a:hover{margin-top:-.25rem;margin-bottom:.25rem}footer{padding:clamp(4rem, 8lvw, 7rem) var(--padding) var(--padding)}}@media (width>=1024px){:root{--grid-size:5vw}header{box-shadow:inset 0 0 0 var(--grid-width) var(--bg), 0 1px 0 0 #0e1d27}header #shapes .right{top:clamp(5rem,12lvh,14rem);right:1rem}header hgroup #rainbow{width:min(60rem,75lvw)}nav.scroll{height:max(4.5rem,6.5lvh)}main article{box-shadow:0 1px 0 0 var(--tertiary)}main article p{line-height:1.65}main .columns{grid-template:"secondary primary"1fr/minmax(0,.9fr) minmax(0,1.1fr);align-items:end}main article p+p{margin-top:2rem}#about h3{margin-top:2rem}#projects .columns aside{bottom:var(--padding);grid-area:secondary;padding-top:10lvh;position:sticky}#projects .columns section{grid-area:primary;place-self:stretch start}#projects .project a{grid-template-rows:4rem auto;grid-template-columns:clamp(4rem,5lvw,6rem) minmax(0,1fr);row-gap:0;margin:0}#projects .project a time{padding:.5rem .75rem;font-size:1rem}#projects .project a p{font-size:1.15rem}#contact h3{margin-top:2rem}footer{--synth-w:4rem;--synth-h:2rem;margin-top:0}footer section{grid-template:"name form""line form"1fr/minmax(0,.9fr) minmax(0,1.1fr);align-content:start;column-gap:clamp(3rem,7.5lvw,7rem)}footer section form{margin-top:0}footer section form .group{flex-direction:row}footer aside{grid-template:"stone legal links"/auto auto 1fr;align-items:center}footer aside small{margin:0}footer aside ul{justify-content:flex-end}}@media (width>=1440px){main article p{font-size:1.6rem}main article p+p{margin-top:2.25rem}}@keyframes drop{0%{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes rise{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1rem)}}@keyframes breathe{0%,to{letter-spacing:-.25rem}50%{letter-spacing:-.08rem}}@keyframes drift{0%{translate:0;rotate:0deg}to{rotate:var(--drift-rotation);translate:var(--drift-x) var(--drift-y)}}@media (prefers-reduced-motion:reduce){h1,#shapes .shape,#pulses .pulse,#pulses .pulse:after,nav.scroll{animation:none}}
