From 59347bda432567cf4f5f049b8b4d2c8986e2f85a Mon Sep 17 00:00:00 2001 From: otto Date: Sat, 28 Oct 2023 15:59:42 -0600 Subject: [PATCH] Updates --- CNAME | 1 - index.1.4e57e254.js => index.1.f7166ffa.js | 41 +++++++++++----------- index.html | 2 +- style.2ac7bf6e.css | 1 - style.c8d88c99.css | 1 + 5 files changed, 22 insertions(+), 24 deletions(-) delete mode 100644 CNAME rename index.1.4e57e254.js => index.1.f7166ffa.js (51%) delete mode 100644 style.2ac7bf6e.css create mode 100644 style.c8d88c99.css diff --git a/CNAME b/CNAME deleted file mode 100644 index 604631b..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -ottofy.dev \ No newline at end of file diff --git a/index.1.4e57e254.js b/index.1.f7166ffa.js similarity index 51% rename from index.1.4e57e254.js rename to index.1.f7166ffa.js index 3fefae7..dee7671 100644 --- a/index.1.4e57e254.js +++ b/index.1.f7166ffa.js @@ -1,21 +1,20 @@ -(()=>{"use strict";var De={8314:(g,j,S)=>{g.exports=S.p+"images/arrowRight.b89601d5.svg"},7376:(g,j,S)=>{g.exports=S.p+"images/copy.15c73ec6.svg"},3989:(g,j,S)=>{g.exports=S.p+"images/githuboutline.5ca08a13.svg"},1231:(g,j,S)=>{g.exports=S.p+"images/lock.e5937d85.svg"},2888:(g,j,S)=>{g.exports=S.p+"images/mailto.c38784e3.svg"}},se={};function v(g){var j=se[g];if(j!==void 0)return j.exports;var S=se[g]={exports:{}};return De[g](S,S.exports,v),S.exports}v.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),(()=>{var g;v.g.importScripts&&(g=v.g.location+"");var j=v.g.document;if(!g&&j&&(j.currentScript&&(g=j.currentScript.src),!g)){var S=j.getElementsByTagName("script");if(S.length)for(var B=S.length-1;B>-1&&!g;)g=S[B--].src}if(!g)throw new Error("Automatic publicPath is not supported in this browser");g=g.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),v.p=g})();var jn={};(()=>{var g=function(){return"ontouchstart"in window||navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0};const j=g,S=JSON.parse('{"github":{"cname":"badge-github","href":"https://github.com/chaseottofy","title":"Github","dataAcc":"@chaseottofy","dataBef":null,"idx":0},"youtube":{"cname":"badge-youtube","href":"https://www.youtube.com/channel/UCawR0cR_xHGCnKy3Vg6yc7g","title":"YouTube","dataAcc":"3.6k subs","dataBef":["@otto-fy","_"],"idx":1},"codepen":{"cname":"badge-codepen","href":"https://codepen.io/chaseottofy","title":"Codepen","dataAcc":"@chaseottofy","dataBef":null,"idx":2},"codewars":{"cname":"badge-codewars","href":"https://www.codewars.com/users/protto","title":"Codewars","dataAcc":"Top 0.2%","dataBef":["@protto","#1218"],"idx":3}}'),B=JSON.parse('{"q1":"mailto:ottofy@zohomail.com?subject=Contacting%20you%20from%20Portfolio"}');var Re=function(r){return navigator&&navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(r):Promise.reject("The current browser does not support the Clipboard API")};const ue=Re;var Ve=function(r,e){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"",o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"button",l=document.createElement("button");return e&&l.setAttribute("class",e),r&&(l.textContent=r),a&&(l.title=a),l.ariaLabel=o,l};const V=Ve;var ze=function(r,e,a,o){var l=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"_blank",s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"noreferrer",i=document.createElement("a");return a&&i.classList.add(a),o&&(i.textContent=o),i.title=e,i.href=r,i.target=l,i.rel=s,i};const z=ze;var Ue=function(r){var e=r,a=function(){return e},o=function(s){e=s};return[a,o]};const U=Ue;function Ge(t,r){return Xe(t)||Ye(t,r)||Ke(t,r)||Je()}function Je(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ke(t,r){if(t){if(typeof t=="string")return de(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return de(t,r)}}function de(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e=4&&N.lastElementChild.remove();for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:"default",o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:2,l=U(0),s=Ge(l,2),i=s[0],n=s[1],c=["default","success","error"].includes(a)?a:"default";i()<=3&&n(i()+1);var u=0,p=document.createElement("aside");p.classList.add("toast"),p.dataset.toastType=c,p.style.zIndex=9e3,p.style.bottom="2rem",p.setAttribute("toast-idx",i());var d=document.createElement("span");d.classList.add("toast-progress"),d.style.width="".concat(u,"%");var f=document.createElement("span");f.classList.add("toast-progress--length");var m=document.createElement("div");m.classList.add("toast-body");var h=document.createElement("span");h.classList.add("toast-message"),h.textContent=e?"".concat(e," ").concat(r):"".concat(r);var y=V("x","toast-close","close toast","button");y.addEventListener("click",function(){p.remove(),i()>0&&n(i()-1)}),m.append(h,y),p.append(d,f,m),N.prepend(p),$e(),setInterval(function(){u+=1,d.style.width="".concat(u,"%"),u===100&&(p.remove(),i()>0&&n(i()-1),clearInterval())},10*o)};const G=Ze;function Qe(t){return rt(t)||tt(t)||pe(t)||et()}function et(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function tt(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function rt(t){if(Array.isArray(t))return Z(t)}function at(t,r){return it(t)||ot(t,r)||pe(t,r)||nt()}function nt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pe(t,r){if(t){if(typeof t=="string")return Z(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Z(t,r)}}function Z(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e=10},ve=function(r,e,a){return!(!r||r.lengtha)},he=function(r){var e=document.createElement("textarea");return e.textContent=r,e.innerHTML};function J(t){return gt(t)||yt(t)||ee(t)||ht()}function ht(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function yt(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function gt(t){if(Array.isArray(t))return te(t)}function Q(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=ee(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var a=0,o=function(){};return{s:o,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return l=c.done,c},e:function(c){s=!0,i=c},f:function(){try{!l&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function ye(t,r){return kt(t)||wt(t,r)||ee(t,r)||bt()}function bt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ee(t,r){if(t){if(typeof t=="string")return te(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return te(t,r)}}function te(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e0){var b=Q(i()),C;try{for(b.s();!(C=b.n()).done;){var q=C.value;switch(q){case"name":{p.classList.add("invalid"),p.focus();break}case"email":{d.classList.add("invalid"),d.focus();break}case"phone":{d.classList.add("invalid"),d.focus();break}case"message":{f.classList.add("invalid"),f.focus();break}default:break}}}catch(O){b.e(O)}finally{b.f()}}},ie=function(){x(),m.blur(),m.disabled=!0,m.classList.remove("btn-allow")},ce=function(){var b=new FormData(u),C=b.get("messageName"),q=b.get("contactMethod"),O=b.get("messageContactVal"),R=b.get("messageVal");q==="email"&&!mt(O)?n([].concat(J(i()),["email"])):q==="phone"&&!vt(O)&&n([].concat(J(i()),["phone"]));var $=he(C);ve($,2,100)?p.value=$:n([].concat(J(i()),["name"]));var F=he(R);ve(F,2,2e3)?f.value=R:n([].concat(J(i()),["message"]))},le=function(b){if(b.preventDefault(),ce(),ie(),a()||i().length>0){n([]);return}var C=new FormData(u);_(),E(),L(),fetch("https://script.google.com/macros/s/".concat(ft,"/exec"),{method:"POST",body:C}).then(function(q){return q.text()}).then(function(){G("Message Sent!",null,"success",2),T()}).catch(function(){G("Something went wrong!","Error: ","error",2),T()})},X=function(){P();var b=Q(h),C;try{for(b.s();!(C=b.n()).done;){var q=C.value;q.addEventListener("change",w)}}catch(F){b.e(F)}finally{b.f()}var O=Q(c),R;try{for(O.s();!(R=O.n()).done;){var $=R.value;$.addEventListener("focus",function(F){F.target.classList.contains("invalid")&&setTimeout(function(){F.target.classList.remove("invalid")},1500)})}}catch(F){O.e(F)}finally{O.f()}u.addEventListener("input",k),u.addEventListener("submit",le)};X()};const _t=St;function jt(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=At(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var a=0,o=function(){};return{s:o,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return l=c.done,c},e:function(c){s=!0,i=c},f:function(){try{!l&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function At(t,r){if(t){if(typeof t=="string")return ge(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return ge(t,r)}}function ge(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);et.length)&&(r=t.length);for(var e=0,a=new Array(r);et.length)&&(r=t.length);for(var e=0,a=new Array(r);et.length)&&(r=t.length);for(var e=0,a=new Array(r);et.length)&&(r=t.length);for(var e=0,a=new Array(r);e blockquote","- list","___ horizontal linebreak"]}}}`);function Y(t,r){return fa(t)||pa(t,r)||Ee(t,r)||da()}function da(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pa(t,r){var e=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(e!=null){var a,o,l,s,i=[],n=!0,c=!1;try{if(l=(e=e.call(t)).next,r===0){if(Object(e)!==e)return;n=!1}else for(;!(n=(a=l.call(e)).done)&&(i.push(a.value),i.length!==r);n=!0);}catch(u){c=!0,o=u}finally{try{if(!n&&e.return!=null&&(s=e.return(),Object(s)!==s))return}finally{if(c)throw o}}return i}}function fa(t){if(Array.isArray(t))return t}function ma(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Ee(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var a=0,o=function(){};return{s:o,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return l=c.done,c},e:function(c){s=!0,i=c},f:function(){try{!l&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function Ee(t,r){if(t){if(typeof t=="string")return Ce(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Ce(t,r)}}function Ce(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);et.length)&&(r=t.length);for(var e=0,a=new Array(r);e1)for(var n=i.querySelector(".pc__header-tabs"),c=l.toLowerCase().replaceAll(/[^a-z]/g,""),u=0;u=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return l=c.done,c},e:function(c){s=!0,i=c},f:function(){try{!l&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function Ba(t,r){if(t){if(typeof t=="string")return Me(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Me(t,r)}}function Me(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return l=c.done,c},e:function(c){s=!0,i=c},f:function(){try{!l&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function Va(t,r){if(t){if(typeof t=="string")return qe(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return qe(t,r)}}function qe(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return l=c.done,c},e:function(c){s=!0,i=c},f:function(){try{!l&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function Qa(t,r){if(t){if(typeof t=="string")return He(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return He(t,r)}}function He(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return l=c.done,c},e:function(c){s=!0,i=c},f:function(){try{!l&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function nn(t,r){if(t){if(typeof t=="string")return Be(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Be(t,r)}}function Be(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return l=c.done,c},e:function(c){s=!0,i=c},f:function(){try{!l&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function dn(t,r){if(t){if(typeof t=="string")return Ne(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Ne(t,r)}}function Ne(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);ec+u&&(A=m+u-o-l,T="bottom"),L<0?(L=l/2,E="left"):L+a>n&&(L=n-a,E="right");var P=s[E],x=s[T];return k.setAttribute("style","".concat(P).concat(x)),w.style.left="".concat(L,"px"),w.style.top="".concat(A,"px"),_.textContent=r,w};const vn=mn;function hn(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=yn(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var a=0,o=function(){};return{s:o,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return l=c.done,c},e:function(c){s=!0,i=c},f:function(){try{!l&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function yn(t,r){if(t){if(typeof t=="string")return We(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return We(t,r)}}function We(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e{"use strict";var We={8314:(g,j,S)=>{g.exports=S.p+"images/arrowRight.b89601d5.svg"},7376:(g,j,S)=>{g.exports=S.p+"images/copy.15c73ec6.svg"},3989:(g,j,S)=>{g.exports=S.p+"images/githuboutline.5ca08a13.svg"},1231:(g,j,S)=>{g.exports=S.p+"images/lock.e5937d85.svg"},2888:(g,j,S)=>{g.exports=S.p+"images/mailto.c38784e3.svg"}},se={};function v(g){var j=se[g];if(j!==void 0)return j.exports;var S=se[g]={exports:{}};return We[g](S,S.exports,v),S.exports}v.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),(()=>{var g;v.g.importScripts&&(g=v.g.location+"");var j=v.g.document;if(!g&&j&&(j.currentScript&&(g=j.currentScript.src),!g)){var S=j.getElementsByTagName("script");if(S.length)for(var H=S.length-1;H>-1&&!g;)g=S[H--].src}if(!g)throw new Error("Automatic publicPath is not supported in this browser");g=g.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),v.p=g})();var gn={};(()=>{var g=function(){return"ontouchstart"in window||navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0};const j=g,S=JSON.parse('{"github":{"cname":"badge-github","href":"https://github.com/chaseottofy","title":"Github","dataAcc":"@chaseottofy","dataBef":null,"idx":0},"youtube":{"cname":"badge-youtube","href":"https://www.youtube.com/channel/UCawR0cR_xHGCnKy3Vg6yc7g","title":"YouTube","dataAcc":"3.6k subs","dataBef":["@otto-fy","_"],"idx":1},"codepen":{"cname":"badge-codepen","href":"https://codepen.io/chaseottofy","title":"Codepen","dataAcc":"@chaseottofy","dataBef":null,"idx":2},"codewars":{"cname":"badge-codewars","href":"https://www.codewars.com/users/protto","title":"Codewars","dataAcc":"Top 0.2%","dataBef":["@protto","#1218"],"idx":3}}'),H=JSON.parse('{"q1":"mailto:ottofy@zohomail.com?subject=Contacting%20you%20from%20Portfolio"}');var De=function(r){return navigator&&navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(r):Promise.reject("The current browser does not support the Clipboard API")};const ue=De;var Re=function(r,e){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"",o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"button",c=document.createElement("button");return e&&c.setAttribute("class",e),r&&(c.textContent=r),a&&(c.title=a),c.ariaLabel=o,c};const V=Re;var Ve=function(r,e,a,o){var c=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"_blank",s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"noreferrer",i=document.createElement("a");return a&&i.classList.add(a),o&&(i.textContent=o),i.title=e,i.href=r,i.target=c,i.rel=s,i};const z=Ve;var ze=function(r){var e=r,a=function(){return e},o=function(s){e=s};return[a,o]};const G=ze;function Ge(t,r){return Ye(t)||Ke(t,r)||Je(t,r)||Ue()}function Ue(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Je(t,r){if(t){if(typeof t=="string")return de(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return de(t,r)}}function de(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e=4&&N.lastElementChild.remove();for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:"default",o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:2,c=G(0),s=Ge(c,2),i=s[0],n=s[1],l=["default","success","error"].includes(a)?a:"default";i()<=3&&n(i()+1);var u=0,p=document.createElement("aside");p.classList.add("toast"),p.dataset.toastType=l,p.style.zIndex=9e3,p.style.bottom="2rem",p.setAttribute("toast-idx",i());var d=document.createElement("span");d.classList.add("toast-progress"),d.style.width="".concat(u,"%");var m=document.createElement("span");m.classList.add("toast-progress--length");var f=document.createElement("div");f.classList.add("toast-body");var h=document.createElement("span");h.classList.add("toast-message"),h.textContent=e?"".concat(e," ").concat(r):"".concat(r);var y=V("x","toast-close","close toast","button");y.addEventListener("click",function(){p.remove(),i()>0&&n(i()-1)}),f.append(h,y),p.append(d,m,f),N.prepend(p),Xe(),setInterval(function(){u+=1,d.style.width="".concat(u,"%"),u===100&&(p.remove(),i()>0&&n(i()-1),clearInterval())},10*o)};const U=Ze;function $e(t){return tt(t)||et(t)||pe(t)||Qe()}function Qe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function et(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function tt(t){if(Array.isArray(t))return $(t)}function rt(t,r){return ot(t)||nt(t,r)||pe(t,r)||at()}function at(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pe(t,r){if(t){if(typeof t=="string")return $(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return $(t,r)}}function $(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e=10},ve=function(r,e,a){return!(!r||r.lengtha)},he=function(r){var e=document.createElement("textarea");return e.textContent=r,e.innerHTML};function J(t){return yt(t)||ht(t)||ee(t)||vt()}function vt(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ht(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function yt(t){if(Array.isArray(t))return te(t)}function Q(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=ee(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var a=0,o=function(){};return{s:o,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var c=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return c=l.done,l},e:function(l){s=!0,i=l},f:function(){try{!c&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function ye(t,r){return wt(t)||bt(t,r)||ee(t,r)||gt()}function gt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ee(t,r){if(t){if(typeof t=="string")return te(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return te(t,r)}}function te(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e0){var b=Q(i()),C;try{for(b.s();!(C=b.n()).done;){var q=C.value;switch(q){case"name":{p.classList.add("invalid"),p.focus();break}case"email":{d.classList.add("invalid"),d.focus();break}case"phone":{d.classList.add("invalid"),d.focus();break}case"message":{m.classList.add("invalid"),m.focus();break}default:break}}}catch(O){b.e(O)}finally{b.f()}}},ie=function(){x(),f.blur(),f.disabled=!0,f.classList.remove("btn-allow")},ce=function(){var b=new FormData(u),C=b.get("messageName"),q=b.get("contactMethod"),O=b.get("messageContactVal"),R=b.get("messageVal");q==="email"&&!mt(O)?n([].concat(J(i()),["email"])):q==="phone"&&!ft(O)&&n([].concat(J(i()),["phone"]));var Z=he(C);ve(Z,2,100)?p.value=Z:n([].concat(J(i()),["name"]));var F=he(R);ve(F,2,2e3)?m.value=R:n([].concat(J(i()),["message"]))},le=function(b){if(b.preventDefault(),ce(),ie(),a()||i().length>0){n([]);return}var C=new FormData(u);_(),E(),L(),fetch("https://script.google.com/macros/s/".concat(pt,"/exec"),{method:"POST",body:C}).then(function(q){return q.text()}).then(function(){U("Message Sent!",null,"success",2),T()}).catch(function(){U("Something went wrong!","Error: ","error",2),T()})},X=function(){P();var b=Q(h),C;try{for(b.s();!(C=b.n()).done;){var q=C.value;q.addEventListener("change",w)}}catch(F){b.e(F)}finally{b.f()}var O=Q(l),R;try{for(O.s();!(R=O.n()).done;){var Z=R.value;Z.addEventListener("focus",function(F){F.target.classList.contains("invalid")&&setTimeout(function(){F.target.classList.remove("invalid")},1500)})}}catch(F){O.e(F)}finally{O.f()}u.addEventListener("input",k),u.addEventListener("submit",le)};X()};const St=kt;var bn=540,K=720,wn=1600,re="image/webp";const ge=JSON.parse('{"calendarCard":{"title":"Google Calendar 2.0","projLink":"https://chaseottofy.github.io/google-calendar-clone-vanilla/","githubLink":"https://github.com/chaseottofy/google-calendar-clone-vanilla","stacks":["vanilla","webpack"],"lighthouseKey":"calendar","description":"Zero dependency clone of Google Calendar.","published":"Jan 15, 2023","tabs":["Day","Week","Month","Year","List"]},"blogCard":{"title":"NextJS Blog","projLink":"https://nextjs-blog-ottofy.vercel.app/","githubLink":"https://github.com/chaseottofy/nextjs-blog","stacks":["typescript","next"],"lighthouseKey":"blog","description":"Next.js Blog with Contentlayer integration.","published":"Sep 14, 2023","tabs":[]},"monthPickerCard":{"title":"Month Picker Plugin","projLink":"https://www.npmjs.com/package/monthpicker-lite-js","githubLink":"https://github.com/chaseottofy/monthpicker-lite-js","stacks":["typescript"],"lighthouseKey":"monthpicker","description":"Lightweight month interface datepicker library for Vanilla JS & Typescript.","published":"Aug 27, 2023","tabs":[]},"markdownCard":{"title":"Markdown Lite","projLink":"https://chaseottofy.github.io/react-lite-markdown/","githubLink":"https://github.com/chaseottofy/react-lite-markdown","stacks":["react","vite"],"lighthouseKey":"markdown","description":"Custom React markdown editor with real-time preview.","published":"Feb 26, 2023","tabs":[]},"optionsData":{"calendar":{"title":"Google Calendar 2.0","subtitle":"vanilla JS","href":"#proj-calendar-top"},"blog":{"title":"Next.js Blog","subtitle":"Typescript + React","href":"#proj-blog-top"},"monthpicker":{"title":"Datepicker Package","subtitle":"Typescript","href":"#proj-monthpicker-top"},"markdown":{"title":"Markdown Editor","subtitle":"React","href":"#proj-markdown-top"}}}');function _t(t,r){return Lt(t)||It(t,r)||At(t,r)||jt()}function jt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function At(t,r){if(t){if(typeof t=="string")return be(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return be(t,r)}}function be(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);et.length)&&(r=t.length);for(var e=0,a=new Array(r);et.length)&&(r=t.length);for(var e=0,a=new Array(r);et.length)&&(r=t.length);for(var e=0,a=new Array(r);e blockquote","- list","___ horizontal linebreak"]}}}`);function Y(t,r){return ca(t)||ia(t,r)||Te(t,r)||oa()}function oa(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ia(t,r){var e=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(e!=null){var a,o,c,s,i=[],n=!0,l=!1;try{if(c=(e=e.call(t)).next,r===0){if(Object(e)!==e)return;n=!1}else for(;!(n=(a=c.call(e)).done)&&(i.push(a.value),i.length!==r);n=!0);}catch(u){l=!0,o=u}finally{try{if(!n&&e.return!=null&&(s=e.return(),Object(s)!==s))return}finally{if(l)throw o}}return i}}function ca(t){if(Array.isArray(t))return t}function la(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Te(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var a=0,o=function(){};return{s:o,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var c=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return c=l.done,l},e:function(l){s=!0,i=l},f:function(){try{!c&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function Te(t,r){if(t){if(typeof t=="string")return Ee(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Ee(t,r)}}function Ee(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);et.length)&&(r=t.length);for(var e=0,a=new Array(r);e1)for(var n=i.querySelector(".pc__header-tabs"),l=c.toLowerCase().replaceAll(/[^a-z]/g,""),u=0;u=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var c=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return c=l.done,l},e:function(l){s=!0,i=l},f:function(){try{!c&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function Oa(t,r){if(t){if(typeof t=="string")return Oe(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Oe(t,r)}}function Oe(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var c=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return c=l.done,l},e:function(l){s=!0,i=l},f:function(){try{!c&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function Ba(t,r){if(t){if(typeof t=="string")return Pe(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Pe(t,r)}}function Pe(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var c=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return c=l.done,l},e:function(l){s=!0,i=l},f:function(){try{!c&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function Ja(t,r){if(t){if(typeof t=="string")return Fe(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Fe(t,r)}}function Fe(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var c=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return c=l.done,l},e:function(l){s=!0,i=l},f:function(){try{!c&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function $a(t,r){if(t){if(typeof t=="string")return Be(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Be(t,r)}}function Be(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);e=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var c=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return c=l.done,l},e:function(l){s=!0,i=l},f:function(){try{!c&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function nn(t,r){if(t){if(typeof t=="string")return He(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return He(t,r)}}function He(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);el+u&&(A=f+u-o-c,T="bottom"),L<0?(L=c/2,E="left"):L+a>n&&(L=n-a,E="right");var P=s[E],x=s[T];return k.setAttribute("style","".concat(P).concat(x)),w.style.left="".concat(L,"px"),w.style.top="".concat(A,"px"),_.textContent=r,w};const sn=ln;function un(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=dn(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var a=0,o=function(){};return{s:o,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var c=!0,s=!1,i;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return c=l.done,l},e:function(l){s=!0,i=l},f:function(){try{!c&&e.return!=null&&e.return()}finally{if(s)throw i}}}}function dn(t,r){if(t){if(typeof t=="string")return Ne(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Ne(t,r)}}function Ne(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,a=new Array(r);eottofy.dev

chase ottofy

02—

Skills

lorem

                Contact /

                Links

                Send Direct Message

                \ No newline at end of file +ottofy.dev

                chase ottofy

                02—

                Skills

                lorem

                              Contact /

                              Links

                              Send Direct Message

                              \ No newline at end of file diff --git a/style.2ac7bf6e.css b/style.2ac7bf6e.css deleted file mode 100644 index bef83e0..0000000 --- a/style.2ac7bf6e.css +++ /dev/null @@ -1 +0,0 @@ -.theme__dark{--accent-1:#111;--accent-2:#222;--accent-3:#333;--accent-4:#444;--accent-5:#555;--accent-6:#888;--accent-7:#eaeaea;--accent-8:#fafafa;--black0:#000;--black1:#0e0e0f;--black2:#333;--black3:#333;--black4:#090909;--grey2:#1a1a1a;--grey3:#000;--grey4:#27272a;--grey5:#262b30;--grey6:#6d6e77;--grey7:#a3a5ad;--grey8:#b6b9c2;--white0:#fff;--white1:#f7f5f5;--white2:#cccbcb;--white3:#e7ecf4;--offsetblack0:rgba(0,0,0,.9);--offsetblack1:rgba(0,0,0,.6);--offsetblack2:rgba(0,0,0,.2);--offsetblack3:hsla(0,0%,9%,.1);--offsetblack4:rgba(8,8,8,.99);--offsetwhite1:hsla(0,0%,100%,.05);--offsetwhite2:hsla(0,0%,100%,.1);--offsetsecondary1:rgba(50,145,255,.1);--offsetsecondary2:hsla(0,0%,100%,.4);--bs-md:rgba(0,0,0,.2) 0 1px 2px 0,rgba(0,0,0,.1) 0 1px 3px 0;--bs-lg:0 30px 60px rgba(0,0,0,.12);--bs-inset1:inset 0 0 10px 8px hsla(0,0%,7%,.3),inset 0 0 10px 8px hsla(0,0%,7%,.2);--selection:#f81ce5;--link:#7f95f5;--link2:#0089ae;--linear1:linear-gradient(0deg,var(--offsetwhite1),var(--offsetwhite1)),radial-gradient(50% 50% at 50% 100%,var(--offsetwhite2) 0%,transparent 100%)}.theme__light{--accent-1:#f1f1f1;--accent-2:#f5f5f5;--accent-3:#f5f5f5;--accent-4:#d4d4d4;--accent-5:#d4d4d4;--accent-6:#888;--accent-7:#333;--accent-8:#111;--black0:#fff;--black1:#fafafa;--black2:#d4d4d4;--black3:#555;--black4:#fafafa;--grey2:#d9d9d9;--grey3:#fff;--grey4:#f7f7f8;--grey5:#94989c;--grey6:#6d6e77;--grey7:#212122;--grey8:#212122;--white0:#000;--white1:#171717;--white2:#4c4c4c;--white3:#212122;--offsetblack0:#fff;--offsetblack1:hsla(0,0%,100%,.8);--offsetblack2:hsla(0,0%,100%,.5);--offsetblack3:hsla(0,0%,100%,.2);--offsetblack4:hsla(0,0%,100%,.96);--offsetwhite1:rgba(0,0,0,.05);--offsetwhite2:rgba(0,0,0,.1);--offsetsecondary1:rgba(50,145,255,.1);--offsetsecondary2:rgba(0,0,0,.3);--bs-md:rgba(0,0,0,.2) 0 1px 2px 0,rgba(0,0,0,.1) 0 1px 3px 0;--bs-lg:0 30px 60px rgba(0,0,0,.12);--bs-inset1:rgba(0,0,0,.2) 0 1px 2px 0,rgba(0,0,0,.1) 0 1px 3px 0;--selection:#7fffe1;--link:#153def;--link2:#212122;--linear1:linear-gradient(0deg,hsla(0,0%,9%,.4),rgba(8,8,8,.05)),radial-gradient(50% 50% at 50% 100%,rgba(40,40,40,.2) 0%,rgba(0,0,0,.8) 100%)}@font-face{font-display:swap;font-family:Neue;font-style:normal;font-weight:400;src:url(fonts/NeueMontreal-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Neue;font-style:normal;font-weight:500;src:url(fonts/NeueMontreal-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Neue;font-style:normal;font-weight:700;src:url(fonts/NeueMontreal-Bold.woff2) format("woff2")}@font-face{font-display:swap;font-family:basement;font-style:normal;font-weight:900;src:url(fonts/basement-expanded.woff2) format("woff2")}:root{--primaryFont:"Neue",sans-serif,-apple-system,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,sans-serif,monospace;--secondaryFont:"basement",georgia,sans-serif,-apple-system,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,sans-serif,monospace;--wtvw:1600px;--htvh:900px;--wt:1600;--ht:900;--ap:calc(var(--wt)/var(--ht));--ap2:calc(100%*(var(--ht)/var(--wt)));--wt2:720;--ht2:540;--htvh2:540px;--wtvw2:720px;--apsmall:calc(var(--wt2)/var(--ht2));--ap2small:calc(100%*(var(--ht2)/var(--wt2)));--fs0:max(34px,2.8rem);--fs1:max(32px,2.8rem);--fs2:max(25px,2.2rem);--fs3:max(20px,1.8rem);--fs4:max(22px,1.6rem);--fs5:max(1.125rem,16px);--fs6:max(1rem,16px);--z-main:500;--z-footer:600;--z-sidebar:700;--z-header:800;--z-aside:900;--z-modal:1000;--z-toast:1100;--skill-section-height:300px;--skill-section-height-sm:200px;--primary1:#0089ae;--primary2:#025b74;--primary3:#013948;--red1:#cf007a;--convert-to-primary:invert(33%) sepia(61%) saturate(1000%) hue-rotate(171deg) brightness(90%) contrast(101%);--intro-offset:12vh;--header-height:4rem;--max-width-md:1140px;--max-width-lg:1280px;--br-1:5px;--br-2:8px;--br-3:10px;--br-4:12px;--br-half:50%;--br-full:9999px;--tbg1:background .15s cubic-bezier(.4,0,.2,1);--tbg2:background-color .2s cubic-bezier(.4,0,.2,1);--tbg3:background-color 100ms cubic-bezier(.4,0,.2,1);--tt1:transform .2s ease-in-out;--tc1:color .2s ease-in-out;--ttop1:top .2s ease-in-out;--topac1:opacity .2s ease-in-out;--ttoast1:all .35s cubic-bezier(.25,.75,.6,.98);--ttooltip1:all .25s cubic-bezier(.25,.75,.6,.98);--bez-1:cubic-bezier(.4,0,.2,1);--bez-2:cubic-bezier(.33,1,.68,1);--bez-3:cubic-bezier(.25,.75,.6,.98);--bez-4:cubic-bezier(.25,.75,.6,.98)}*,:after,:before{border:0;box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-size:18px;line-height:1.15;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--black0);color:var(--white1);font-size:1rem;font-weight:400;line-height:inherit;overflow-x:hidden;overflow-y:scroll;position:relative;width:100%}a,body,button,div,h1,h2,h3,h4,input,li,p,span,textarea,ul{font-family:Neue,sans-serif,-apple-system,ui-sans-serif,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,monospace;font-family:var(--primaryFont)}h1,h2,h3,h4{font-weight:700}button{background:0 0;cursor:pointer;line-height:1.15;margin:0;outline:0;padding:0;text-transform:none}input{line-height:1.15;margin:0;outline:0}input,textarea{background:0 0;border:1px solid var(--black2);border-radius:5px;border-radius:var(--br-1);color:var(--white1);font-size:.875rem;padding:.5rem;text-transform:none;width:100%}textarea{min-height:4rem;resize:none}ul{list-style:none}a{color:var(--link);-webkit-text-decoration:none;text-decoration:none}img{border:0;height:auto;margin:0;max-height:100%;max-width:100%;padding:0}a>img,button>img,span>img{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:link img,:visited img,a img{border:none}input::-moz-placeholder{color:var(--white2);font-size:.875rem;opacity:1}input::placeholder{color:var(--white2);font-size:.875rem;opacity:1}a:focus-visible,button:focus-visible,input:focus-visible,input[type=radio]:focus-visible+label,label:focus-visible,textarea:focus-visible{outline:1.5px dotted var(--white1)}svg{fill:var(--white1);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}::-moz-selection{background-color:var(--selection);color:var(--white1)}::selection{background-color:var(--selection);color:var(--white1)}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}img[disabled]{-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:.5;pointer-events:none}a[disabled],button[disabled],img[disabled],input[disabled]{-webkit-user-select:none;-moz-user-select:none;user-select:none}a[disabled],button[disabled],input[disabled]{cursor:not-allowed}.img-icon{filter:invert(1);height:1rem;width:1rem}.theme__light .img-icon{filter:invert(0)}.body-prevent-scroll{overflow:hidden}.scrollbar-measure{overflow:scroll;position:absolute;visibility:hidden}[data-disable-transitions=true] *{animation:none!important;transition:none!important;transition-duration:none!important;transition-property:none!important;transition-timing-function:none!important}.skeleton{animation:b 8s ease-in-out infinite;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(270deg,var(--grey2),var(--grey3),var(--grey3),var(--grey2));background-size:400% 100%;color:transparent;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.skeleton::-moz-placeholder{color:transparent;opacity:0}.skeleton::placeholder{color:transparent;opacity:0}[data-active-popup=false]{height:0!important;left:0;margin:0!important;opacity:0!important;pointer-events:none!important;top:0;transition:opacity .2s ease-in-out;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important;visibility:hidden!important;width:0!important;z-index:-1!important}[data-active-popup=true]{height:100%;opacity:1;pointer-events:auto;transition:opacity .2s ease-in-out;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto;visibility:visible;width:100%;z-index:9999}@keyframes a{0%{opacity:0}50%{opacity:.5}to{opacity:1}}@keyframes b{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes c{0%{opacity:0}50%{opacity:1}to{opacity:0}}@keyframes d{0%{opacity:1}to{opacity:.15}}@media screen and (max-width:1020px){html{font-size:16px}}@media screen and (max-width:390px){html{font-size:14px}}.header{-webkit-backdrop-filter:saturate(180%) blur(5px);backdrop-filter:saturate(180%) blur(5px);background-color:rgba(0,0,0,.4);border-bottom:1px solid rgba(80,85,90,.15);height:4rem;height:var(--header-height);left:0;max-width:100vw;position:fixed;top:0;width:100%;z-index:800;z-index:var(--z-header)}.header-has--background{background-color:rgba(0,0,0,.93);box-shadow:0 12px 36px rgba(1,57,72,.15)}.header-wrapper{justify-content:space-between;margin:0 auto;max-width:1140px;max-width:var(--max-width-md);padding:0 1rem;position:relative}.header-logo--wrapper,.header-wrapper{align-items:center;display:flex;height:100%;width:100%}.header-logo{align-items:center;cursor:pointer;display:flex;height:42px;justify-content:center;opacity:.9;width:42px}.header-logo img{height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.header-nav{position:relative}.header-nav,.nav-menu{align-items:center;display:flex;height:100%;justify-content:space-between;width:100%}.nav-menu{overflow:hidden}.nav-menu img,.nav-menu span{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.nav-menu li{height:4rem;height:var(--header-height);padding:.85rem .5rem;width:auto}.nav-menu li,.nav-menu li a{align-items:center;display:flex}.nav-menu li a{background-color:transparent;border:0;border-radius:9999px;border-radius:var(--br-full);box-shadow:none;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;height:100%;justify-content:center;letter-spacing:.02em;margin:0;opacity:.8;padding:0 .85rem;position:relative;text-align:center;transform:scaleY(.9);width:100%}.contact-nav--btn span{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.nav-menu--link__arrow{height:18px!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:18px!important}.header-right{align-items:center;display:flex;height:100%;justify-content:flex-end;width:100%}.theme-modal{display:flex;justify-content:center;z-index:9999}.theme-switch{align-items:center;background:rgba(8,8,8,.99);border:1px solid #111;border-radius:9999px;border-radius:var(--br-full);display:flex;flex-direction:row;height:36px;justify-content:space-around;position:relative;width:72px}.theme-switch span label img{height:18px!important;opacity:.8;width:18px!important}.theme-switch span input:checked+.theme-label--two img{opacity:1}.theme-switch span input:checked+label{background:#212223}.theme-switch span input:checked+label img{opacity:1}.theme-switch span{align-items:center;display:flex;height:32px;justify-content:center;width:32px}.theme-switch span input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;margin:0;outline:0;padding:0;position:absolute;z-index:-1}.theme-switch span label{align-items:center;background:0 0;border-radius:50%;border-radius:var(--br-half);color:#fff;cursor:pointer;display:flex;height:100%;justify-content:center;width:100%}.header-logo:hover{opacity:.6;transition:opacity .2s ease-in-out}.nav-menu li a:hover,.theme-switch span label:hover img{opacity:1}[data-contact-menu-open=true] a{background-color:#fff!important;transition:background-color .2s cubic-bezier(.4,0,.2,1);transition:var(--tbg2)}[data-contact-menu-open=true] a span{color:#000}[data-contact-menu-open=true] .nav-menu--link__arrow{filter:invert(1)!important;transform:rotate(180deg)!important}@media screen and (max-width:720px){.header-logo--wrapper{display:none}.nav-menu li a{padding:.625rem}.nav-menu--link__arrow{display:none}}@media screen and (max-width:490px){.header-wrapper{padding:0 .5rem}.nav-menu li a{padding:.5rem .25rem}.nav-menu li:last-child a{padding-right:.5rem}.nav-menu li:nth-child(2){display:none}}.gradient-overlay--one{background:linear-gradient(320.54deg,#00069f,#120010 72.37%),linear-gradient(58.72deg,#69d200,#970091),linear-gradient(121.28deg,#8cff18,#6c0075),linear-gradient(121.28deg,#8000ff,#222),linear-gradient(180deg,#00ff19,#24ff00 .5%,#2400ff),linear-gradient(52.23deg,#0500ff,red),linear-gradient(121.28deg,#32003a,#ff4040),radial-gradient(50% 72.12% at 50% 50%,#eb00ff 0,#105 100%);background-blend-mode:screen,color-dodge,color-burn,screen,overlay,difference;background-size:110% 110%;height:calc(100vh + 2px);left:0;margin:-12vh auto 0;margin:calc(0vh - var(--intro-offset)) auto 0 auto;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:100}.gradient-noir{filter:contrast(1.5) hue-rotate(294deg)}.gradient-overlay--two{background-image:url(images/top2.61b852c7.webp);background-position:50%;background-repeat:round;filter:brightness(1.2);height:calc(100vh + 2px);left:0;margin:-12vh auto 0;margin:calc(0vh - var(--intro-offset)) auto 0 auto;mix-blend-mode:darken;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:200}.gradient-overlay--one:after{background:hsla(0,0%,100%,.1);content:"";height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%;z-index:9999}.section-divider{box-shadow:0 0 0 1px #013948;box-shadow:0 0 0 1px var(--primary3);height:1px;margin:0 auto;position:relative;width:100%}.section-gradient--l{background:linear-gradient(180deg,#0089ae 0,#013948 50%,#025b74 80%);background:linear-gradient(to bottom,var(--primary1) 0,var(--primary3) 50%,var(--primary2) 80%);border-radius:100%;filter:blur(48px);height:100%!important;margin-top:-49px;max-height:48px!important;min-height:48px!important;mix-blend-mode:normal;opacity:.8;pointer-events:none;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.theme__light .section-gradient--l{opacity:.6}.intro-container{height:calc(88vh + 2px);height:calc(100vh - var(--intro-offset) + 2px);margin:0 auto;max-width:1280px;max-width:var(--max-width-lg);position:relative}.intro-header,.intro-header__subtitles{align-items:center;display:flex;flex-direction:column;height:100%;position:relative;width:100%}.intro-header__subtitles{justify-content:center;margin:0 auto;max-width:1140px;max-width:var(--max-width-md);padding-bottom:4rem;z-index:200}.intro-header__subtitles h1{text-wrap:nowrap;background:0 0;color:#e7ecf4;font-family:basement,georgia,sans-serif,-apple-system,ui-sans-serif,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,monospace;font-family:var(--secondaryFont);font-size:max(34px,2.8rem);font-size:var(--fs0);letter-spacing:.05em;line-height:1;opacity:.92;position:relative;width:auto;z-index:-1}.intro-header__subtitles h1:before{-webkit-text-stroke:1px #ddd;-webkit-background-clip:text;background-clip:text;bottom:0;color:transparent;content:"webdev";letter-spacing:.03rem;padding-right:1.25rem;padding-top:.5rem;position:absolute;right:0;transform:translateY(100%)}.intro-container--links{align-items:center;bottom:0;display:flex;height:10rem;justify-content:center;margin:0 auto;position:absolute;width:100%;z-index:201}.intro-container--links a{align-items:center;background:rgba(0,0,0,.7);border:1px solid rgba(36,39,44,.5);border-radius:5px;border-radius:var(--br-1);color:#e7ecf4;display:flex;font-size:.9rem;height:2.5rem;letter-spacing:.02em;margin:0 .5rem;padding:.5rem 1rem;position:relative}.intro-container--links a img{filter:invert(1);height:1.25rem;margin-right:.75rem;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1.25rem}.intro-container--links a:hover{background:#141516;border-color:var(--grey6);transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.intro-observer-ref{bottom:0;height:4rem;height:var(--header-height);left:0;pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:-1}@media screen and (max-width:840px){.intro-header__subtitles h1{font-size:5vw}}.main{align-items:center;display:flex;flex-direction:column;height:100%;position:relative;width:100%}.section-container{padding-bottom:4rem;padding-left:.5rem;padding-right:.5rem}.section-title{display:flex;flex-direction:column;margin:0 auto .5rem;max-width:1140px;max-width:var(--max-width-md);padding:2rem 0 1rem;position:relative;width:100%}.section-title h2,.section-title h3{color:var(--white3);font-family:basement,georgia,sans-serif,-apple-system,ui-sans-serif,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,monospace;font-family:var(--secondaryFont);font-size:max(22px,1.6rem);font-size:var(--fs4);font-weight:900;line-height:.65;padding:.5rem;position:relative;white-space:nowrap}.section-title h2{letter-spacing:5px}.section-title h3{-webkit-text-stroke:1px var(--white2);-webkit-background-clip:text;background-clip:text;color:transparent}.section-subtitle{color:var(--white1);font-size:.875rem;font-weight:500;line-height:1.375;opacity:.9}.section-excerpt{border-bottom:1px solid var(--grey2);display:flex;flex-direction:column;height:auto;justify-content:center;margin:0 auto;max-width:1140px;max-width:var(--max-width-md);padding:1rem 8rem 1rem .5rem;position:relative;width:100%}.section-excerpt p{font-size:1rem;min-height:160px;padding:0 1rem 1rem 0}@media screen and (max-width:720px){.section-title{flex-direction:column}.section-title h2,.section-title h3{font-size:max(22px,1.6rem);font-size:var(--fs4)}.section-excerpt{padding:1rem .5rem}.section-excerpt p{padding-right:2rem}.section-excerpt:after{width:calc(100% - 2rem)}}@media screen and (max-width:580px){.section-title h2,.section-title h3{font-size:max(22px,1.6rem);font-size:var(--fs4)}}.project-content__body{border:none;border-top:1px solid var(--grey2);height:100%;margin:0;overflow:hidden;padding:56.25% 0 0;padding-top:var(--ap2);position:relative;width:100%}.project-content__body:after{background-image:url(images/dark-matter.1b9a3f41.png);background-position:50%;content:"";filter:invert(.3);height:100%;left:0;mix-blend-mode:screen;opacity:.5;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:888}.project-content__body picture{cursor:zoom-in;filter:contrast(110%)}.project-content__body picture img{transition:transform .3s cubic-bezier(.25,.75,.6,.98)}.proj-img{-interpolation-mode:nearest-neighbor;aspect-ratio:1.77778;aspect-ratio:var(--ap);height:100%;image-rendering:auto;left:0;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;position:absolute;top:0;width:100%}.hide-img{-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:-1}.fade-img--in{animation:e .2s forwards}.fade-img--out{animation:e .1s reverse forwards}.img-skeleton{align-items:center;background:var(--offsetblack1);display:flex;height:100%;justify-content:center;left:0;min-height:100%;min-width:100%;position:absolute;top:0;width:100%;z-index:9999}.project-content__body picture:hover img{transform:scale(101%)}@keyframes e{0%{opacity:0}to{opacity:1}}@media screen and (max-width:720px){.project-content__body{padding-top:75%;padding-top:var(--ap2small)}.proj-img{aspect-ratio:1.33333;aspect-ratio:var(--apsmall)}}.projects-container{background:var(--black0);position:relative;scroll-margin-top:4rem;width:100%;z-index:50}.projects-container:before{background-image:url(images/graphy-dark.d637abcf.png);background-position:50%;content:"";height:100%;left:0;opacity:.1;position:absolute;top:0;width:100%}.projects-grid{display:flex;flex-direction:column;height:100%;margin:0 auto;max-width:1140px;max-width:var(--max-width-md);padding:0 .5rem;position:relative;width:100%;z-index:10}.project-cell-divider{height:5rem;margin:1.5rem auto;opacity:.3;outline:1px dotted var(--white1);width:1px;z-index:2000}.project-cell-divider:last-child{height:6rem;margin-bottom:0;margin-top:3rem}@media screen and (max-width:490px){.projects-grid{padding:.5rem}}.project-cell{background:var(--black0);border:1px solid var(--grey2);border-radius:12px;border-radius:var(--br-4);box-shadow:4px 4px 12px rgba(39,42,43,.125);display:flex;flex-direction:column;margin:0 auto;max-width:100%;padding-top:.5rem;position:relative;scroll-margin-top:5rem;width:100%;z-index:500}[data-project-cell-loaded=false] *{color:var(--black0)!important}[data-project-cell-loaded=false] :before{opacity:0!important}.project-cell:after{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:3000}.project-cell__content{display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.project-content__header{align-items:center;display:grid;grid-template-columns:1fr;height:3.5rem;justify-content:center;padding:.5rem;position:relative;width:100%}.subheader-sm{height:3rem!important;padding:0 .5rem!important}.pc__header-tabs{align-items:flex-start;display:flex;height:100%;margin-top:-.5rem;width:100%}.pc__header-tabs span,.pc__header-tabs span label{align-items:center;display:flex;height:100%;position:relative;width:100%}.pc__header-tabs span label{border:1px solid var(--offsetwhite1);border-top:0;color:var(--accent-7);cursor:pointer;font-size:.9rem;font-weight:500;justify-content:center;letter-spacing:-.03em;outline:1px dotted transparent;text-align:center;transform:translateY(.9);transition:background .15s cubic-bezier(.4,0,.2,1);transition:var(--tbg1)}.pc__header-tabs span label:after{content:attr(data-lab-after)}.pc__header-tabs span:last-child label{border-radius:0 8px 0 0;border-radius:0 var(--br-2) 0 0;border-right:none}.pc__header-tabs span:first-child label{border-left:none!important;border-radius:8px 0 0 0;border-radius:var(--br-2) 0 0 0}.pc__header-tabs span input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;margin:0;outline:0;padding:0;position:absolute;z-index:-1}.pc__header-tabs span input:checked+label{background:var(--linear1);border:1px solid var(--offsetwhite2);border-top:none;color:#fff;pointer-events:none}.pc__header-tabs span input:checked+label:before{animation:c 2s ease-in-out infinite;background:#0089ae;background:var(--primary1);border-radius:50%;border-radius:var(--br-half);content:"";height:.35rem;position:absolute;right:.5rem;top:.5rem;width:.35rem}.project-content__subheader{align-items:flex-start;display:flex;justify-content:space-between;overflow:hidden;padding:0 .5rem .5rem;position:relative;width:100%;z-index:1}.project-content__published{align-items:center;color:var(--white2);margin:0 0 .5rem .5rem;pointer-events:none;position:relative;z-index:8888}.content-published--text,.project-content__published{display:flex;width:-moz-fit-content;width:fit-content}.content-published--text{font-family:monospace;font-size:.8rem;font-weight:700;line-height:1.25rem;text-transform:uppercase}.pc__subheader--search{background:var(--black0);border:1px solid var(--offsetwhite2);border-radius:5px;border-radius:var(--br-1);box-shadow:var(--bs-inset1);height:2.25rem;justify-content:flex-start;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc__subheader--search,.pc__subheader--search a{align-items:center;display:flex;position:relative;width:100%}.pc__subheader--search a{border:0;color:var(--white1);font-size:.875rem;font-weight:500;height:100%;opacity:.9;padding:0 3rem 0 .5rem;z-index:1000}.pc__subheader--search span{align-items:center;border-top:2px solid transparent;display:flex;height:100%}.comp-search--text{text-transform:capitalize}.pc__subheader--search a:first-child img{height:.75rem;margin:0 .75rem 0 .25rem;opacity:.5;width:.75rem}.pc__subheader--search .search-arrowright,.pc__subheader--search a:first-child img{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pc__subheader--search .search-arrowright{align-items:center;background:0 0;cursor:pointer;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;width:2rem;z-index:1}.pc__subheader--search .search-arrowright img{height:.875rem;width:.875rem}.pc__subheader--links{align-items:center;display:flex;height:2.25rem;width:auto}.pc__subheader--links a{align-items:center;background:linear-gradient(90deg,#025b74,#013948);background:linear-gradient(to right,var(--primary2),var(--primary3));border:none;border-radius:5px;border-radius:var(--br-1);color:#fff;display:flex;font-size:.875rem;font-weight:400;height:100%;padding:0 .5rem}.pc__subheader--links img{filter:invert(1)!important;height:1rem;margin-right:.5rem;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1rem}.pc__header-tabs span input:focus-visible+label{outline:1px dotted var(--white1)}.pc__subheader--links a:focus-visible,.pc__subheader--search:focus-within{border:1px dotted var(--white1)}.pc__subheader--links a:hover{opacity:.8;transition:opacity .2s ease-in-out;transition:var(--topac1)}.pc__header-tabs span label:hover,.pc__subheader--links button:hover{background:var(--accent-1);transition-duration:.15s;transition-property:background;transition-timing-function:cubic-bezier(.4,0,.2,1)}.pc__subheader--search:hover{background-color:var(--black4);border-color:var(--accent-5);transition-duration:.15s;transition-property:background,border;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media screen and (max-width:840px){.pc__header-tabs span label{font-size:.825rem}}@media screen and (max-width:720px){.pc__header-tabs span label:after{display:none}.subheader-sm{height:3.5rem!important}.pc__header-tabs span input:checked+label:before{display:none}.pc__subheader--search{max-width:80%}.pc__subheader--search a{font-size:15px;font-weight:400;letter-spacing:-.03em}}@media screen and (max-width:540px){.pc__header-tabs{padding-bottom:.25rem}.pc__subheader--links{justify-content:center;width:2.25rem}.pc__subheader--search a img{display:none}.pc__subheader--links img{margin:0}.pc__subheader--links a span{display:none}}@media screen and (max-width:340px){.pc__subheader--search{font-size:.875rem}.proj-cell-tabs .pc__header-tabs span label{color:transparent!important;font-size:.75rem}.pc__header-tabs span label{color:transparent;overflow:hidden;text-align:center}.pc__header-tabs span label:after{align-items:center;color:var(--white1);content:attr(data-lab-sm)!important;display:flex;font-size:.875rem;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}}.project-cell__footer{background:linear-gradient(to bottom,var(--offsetblack0) 0,var(--black0) 30%);border-radius:0 0 8px 8px;border-radius:0 0 var(--br-2) var(--br-2);border-top:2px solid var(--black1);display:flex;flex-direction:column-reverse;height:100%;margin-top:-6rem;padding:.5rem .5rem 1rem;position:relative;width:100%;z-index:999}.project-footer__titles{align-items:center;display:flex;flex-direction:row;height:100%;justify-content:space-between;padding:1.25rem .5rem 0}.project-footer__desc{display:flex;font-size:1.2rem;font-weight:400!important;height:100%;letter-spacing:-.02em;min-height:2.75rem;opacity:.825;padding-right:1rem;position:relative;transform:scaleY(.9);width:70%}.pf-stacks{width:auto}.pf-stack,.pf-stacks{align-items:center;display:flex;position:relative}.pf-stack{border-radius:50%;border-radius:var(--br-half);height:3rem;justify-content:center;margin-left:.75rem;overflow:hidden;width:3rem}.pf-stack:before{border:12px solid transparent;-o-border-image:linear-gradient(to right bottom,var(--accent-6),var(--black1),var(--black0));border-image:linear-gradient(to right bottom,var(--accent-6),var(--black1),var(--black0));border-image-slice:1;border-radius:50%;border-radius:var(--br-half);content:"";height:100%;left:0;position:absolute;top:0;width:100%}.pf-stack:after{background:#000;border-radius:50%;border-radius:var(--br-half);content:"";height:96%;margin:0 auto;position:absolute;width:96%;z-index:2}.theme__light .pf-stack:after{background:var(--black0)}.next-icon,.react-icon,.typescript-icon,.vanilla-icon,.vite-icon,.webpack-icon{filter:contrast(1.1) brightness(1.1);height:32px;position:relative;width:32px;z-index:3}.theme__light .webpack-icon{filter:invert(1)}.project-footer__content{flex-wrap:wrap;height:100%;justify-content:space-between;margin:0 auto;padding:.5rem .5rem .25rem;width:100%}.project-footer__content,.project-footer__title{align-items:center;display:flex;position:relative}.project-footer__title{color:var(--white3);font-family:basement,georgia,sans-serif,-apple-system,ui-sans-serif,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,monospace;font-family:var(--secondaryFont);font-size:1.125rem;font-weight:900;letter-spacing:.05em;min-height:2rem;opacity:.85;padding:1rem 2rem .5rem 0;transform:scaleY(1.25)}.project-footer-btns{align-items:center;display:flex;padding-top:1rem}.project-footer-btns button{border-radius:5px;border-radius:var(--br-1);font-size:.9rem;font-weight:500;overflow:hidden;padding:.625rem 1rem;position:relative;white-space:nowrap}.project-footer-btns button:first-child{background:linear-gradient(to right bottom,var(--black4),var(--black0),rgba(12,206,107,.05));border:1px solid var(--offsetwhite2);color:var(--accent-7);margin-right:.75rem}.project-footer-btns button:first-child:hover{border:1px solid rgba(12,206,107,.2)}.project-footer-btns button:last-child{background:var(--offsetblack1);border:1px solid var(--offsetwhite2);color:var(--white1)}.project-footer-btns button:last-child:hover{background:linear-gradient(to right bottom,rgba(50,145,255,.25),var(--accent-1));color:var(--white1)}@media screen and (max-width:840px){.project-footer__titles{display:none}.project-footer__title{font-size:1rem}.project-cell__footer{background:var(--black0);margin-top:0}}@media screen and (max-width:540px){.project-footer__title{font-size:3.25vw}}.about-container{width:100%}.about-grid{margin:0 auto;max-width:1600px;padding:1rem}.about-grid,.skills-container{display:flex;flex-direction:column;height:100%;position:relative;width:100%}.skills-container{max-width:1200px;scroll-margin-top:4rem}.skills-top{display:flex;flex-direction:column;justify-content:flex-end;margin:0 auto;max-width:1600px}.skills-grid,.skills-top{height:100%;position:relative;width:100%}.skills-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin:1rem auto 2rem;max-width:1200px}.skills-cell{border-left:1px solid var(--grey2);border-radius:5px 0 0 0;border-radius:var(--br-1) 0 0 0;border-top:1px solid var(--grey2);display:flex;flex-direction:column;font-size:1rem;font-weight:500;height:100%;margin:0 auto;max-height:300px;max-height:var(--skill-section-height);min-height:300px;min-height:var(--skill-section-height);position:relative;width:100%}.skills-cell:last-child{border-bottom:0}.skill-title{font-family:basement,georgia,sans-serif,-apple-system,ui-sans-serif,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,monospace;font-family:var(--secondaryFont);font-size:16px;left:1.25rem;letter-spacing:.05rem;position:absolute;top:1.25rem;transform:scaleY(1.2);width:auto;z-index:3}.skill-content{align-items:center;display:flex;flex-direction:column;height:calc(300px - 4rem);height:calc(var(--skill-section-height) - 4rem);list-style-type:none;margin-top:3rem;overflow-y:auto;padding:.5rem 2rem 0 1rem;width:100%}.skill-content li{color:var(--grey8);font-size:.9rem;line-height:1rem;padding-bottom:10px;position:relative;width:100%;z-index:3}.skill-img--wrapper{align-items:flex-start;display:flex;height:2rem;justify-content:flex-end;position:absolute;right:.75rem;top:.75rem;width:2rem}.skill-img--wrapper img{filter:invert(33%) sepia(61%) saturate(1000%) hue-rotate(171deg) brightness(90%) contrast(101%);filter:var(--convert-to-primary);height:100%;pointer-events:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important;width:100%}.theme__light .skill-img--wp{filter:invert(1)!important}.skill-content::-webkit-scrollbar{background:var(--black1);width:9px}.skill-content::-webkit-scrollbar-thumb{background:var(--accent-5);border-radius:10px;border-radius:var(--br-3)}.skill-content::-webkit-scroll-track{background:var(--black1)!important;border-radius:10px;border-radius:var(--br-3)}@media screen and (max-width:840px){.skills-grid{grid-template-columns:1fr}.skills-cell{max-height:200px;max-height:var(--skill-section-height-sm);min-height:200px;min-height:var(--skill-section-height-sm)}}@media screen and (max-width:640px){.skills-cell{grid-template-columns:1fr 2.5rem}.skill-img--wrapper{height:2rem;width:2rem}.skill-img--wrapper img{height:1.75rem!important;width:1.75rem!important}}.contact-container{align-items:center;background:var(--black0);max-width:100vw;padding:2rem .75rem 6rem;position:relative;scroll-margin-top:4rem;z-index:3}.contact-container,.contact-menu__header{display:flex;flex-direction:column;width:100%}.contact-menu__header{animation:a .15s both;background:var(--offsetblack4);border:1px solid var(--black1);border-radius:8px;border-radius:var(--br-2);box-shadow:var(--bs-lg);height:min(600px,95vh - 4rem);height:min(600px,95vh - var(--header-height));left:0;margin:0 auto;max-height:90%;max-width:min(640px,90vw);min-height:400px;opacity:1;overflow:hidden;position:fixed;right:0;z-index:9998}[data-contact-menu-disabled=true]{display:none;height:0!important;position:relative;visibility:hidden;width:0!important;z-index:-1!important}.contact-menu__body{align-items:center;grid-template-columns:min(380px,40%) 1fr;justify-content:center;margin:0 auto;max-width:1200px;min-height:600px}.cm-left,.contact-menu__body{display:grid;height:100%;position:relative;width:100%}.cm-left{grid-row-gap:.5rem;background:var(--offsetblack3);grid-template-columns:1fr;grid-template-rows:auto 1fr 128px;overflow:hidden;padding-right:1rem;row-gap:.5rem}.cm-left:after{background-image:url(images/beanstalk-dark.abf0b83b.webp);background-position:50%;content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:-1}.theme__light .cm-left:after{filter:invert(1)}.cm-left__body,.cm-left__footer,.cm-left__header{display:flex;height:100%;width:100%}.cm-left__header{color:var(--white0);flex-direction:column;font-size:1.125rem;padding:.5rem}.cm-left__header h3{font-family:basement,georgia,sans-serif,-apple-system,ui-sans-serif,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,monospace;font-family:var(--secondaryFont)}.cm-left__header h3:last-child{-webkit-text-stroke:1px var(--white2);-webkit-background-clip:text;background-clip:text;color:transparent}.cm-left__footer{display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr;width:100%}.cm-left__footer-relocate{align-items:center;color:var(--accent-8);text-transform:uppercase;transform:scaleY(.9)}.cm-left__footer-location,.cm-left__footer-relocate{display:flex;font-weight:500;height:100%;padding:.25rem;width:100%}.cm-left__footer-location{color:var(--accent-7);flex-direction:column;line-height:1.5rem}.cm-right{box-shadow:var(--bs-md);grid-template-columns:1fr;grid-template-rows:1fr auto;position:relative;z-index:1000}.cm-right,.cm-right--top{display:grid;height:100%;width:100%}.cm-right--top{color:var(--accent-5);grid-template-columns:1fr 1fr;overflow:hidden}.cm-right--top__cell{cursor:pointer;display:flex;flex-direction:column;height:100%;width:100%}.cm-right--top__cell:focus-within{outline:1px dotted var(--white1)}.cm-right--top__cell:nth-child(odd){border-right:1px solid var(--offsetwhite1)}.cm-right--top__cell:nth-child(-n+2){border-bottom:1px solid var(--offsetwhite1)}.cm-right--top__cell-badge{color:var(--white0);cursor:pointer;display:flex;flex-direction:column;font-weight:500;height:100%;padding:1.5rem;width:100%}.badge-top{height:100%;width:100%}.badge-top--container--svg{align-items:center;border-radius:50%;border-radius:var(--br-half);display:flex;justify-content:center;min-height:3rem;min-width:3rem;overflow:hidden}.badge-top--container--svg img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.badge-top--profile{display:flex;font-size:.9rem;max-height:3rem}.badge-mug{border-radius:50%;border-radius:var(--br-half);height:3rem!important;width:3rem!important}.badge-top span{margin-left:auto;opacity:.8;text-align:right;width:100%}.badge-prof{position:relative}.badge-prof:after{content:attr(data-acc);font-size:.875rem;top:1.5rem;transition:top .2s ease-in-out;transition:var(--ttop1)}.badge-prof:after,.badge-prof:before{color:var(--accent-8);height:100%;position:absolute;right:0;width:100%;z-index:1}.badge-prof:before{content:attr(data-bef);font-size:.75rem;opacity:1;top:3rem}.badge-footer{align-items:center;color:var(--accent-8);display:flex;font-weight:500;height:1.75rem;letter-spacing:-.5px;width:100%}.badge-footer img{fill:none;filter:invert(1);height:1rem;margin-left:.25rem;margin-right:.5rem;width:1rem}.badge-footer span{padding:.25rem .5rem;vertical-align:middle}.cm-right--bottom{display:flex;flex-direction:column;height:100%;justify-content:flex-end;width:100%}.contact-menu__body .cm-right{overflow:hidden}.cm-right--bottom__body{display:flex;flex-direction:column;height:100%}.cm-right--bottom__cell{align-items:center;border-top:1px solid var(--offsetwhite1);display:flex;font-weight:500;height:100%;justify-content:space-between;min-height:4rem;padding:2px .5rem;width:100%}.cm-right--bottom__cell span{transform:scaleY(.95)}.cm-right--bottom__cell-icons{align-items:center;display:flex;height:100%;justify-content:flex-end}.cm-copy,.cm-email-goto{align-items:center;border:1px solid var(--offsetwhite1);display:flex;height:2.25rem;justify-content:center;width:2.5rem}.cm-copy{margin-left:.5rem}.cm-copy img,.cm-email-goto img{height:1.375rem;width:1.375rem}.cm-right--top__cell:hover{background:var(--grey4)}.cm-copy:hover,.cm-email-goto:hover,.cm-right--top__cell:hover{transition:background .15s cubic-bezier(.4,0,.2,1);transition:var(--tbg1)}.cm-copy:hover,.cm-email-goto:hover{background:var(--offsetwhite1)}@media screen and (max-height:600px){.contact-menu__header{height:8rem!important;min-height:8rem!important}.contact-menu__header .cm-right{height:120px!important}.contact-menu__header .cm-right--bottom__cell{height:4rem!important}.contact-menu__header .cm-right--top{display:none!important}}@media screen and (max-width:768px){.contact-menu__body{grid-template-columns:1fr;grid-template-rows:25% 1fr;padding:.25rem}.cm-left{border:none;display:flex;flex-wrap:wrap;padding:6px 2px 2rem}.cm-left__header{height:20%;width:100%}.cm-left__header h3{padding:0}.cm-left__header span{padding:2px}.cm-left__body,.cm-left__footer{height:80%;text-align:right;width:50%}.cm-left__footer-relocate{justify-content:flex-end}}@media screen and (max-width:720px){.contact-menu__header{display:none}}@media screen and (max-width:640px){.contact-container{padding-left:.25rem;padding-right:.25rem}.cm-right--top__cell-badge{padding:.5rem}}@media screen and (max-width:490px){.cm-right--top__cell{opacity:1}.badge-prof{color:var(--white1)!important}.badge-prof:after,.badge-prof:before{transform:translateY(1.5rem)}}.contact-form--container{background-clip:content-box,border-box;background-color:var(--grey3);background-image:linear-gradient(var(--grey3),var(--grey3)),linear-gradient(200deg,#013948 0,#0089ae 20%,rgba(121,40,202,0) 80%);background-image:linear-gradient(var(--grey3),var(--grey3)),linear-gradient(200deg,var(--primary3) 0,var(--primary1) 20%,rgba(121,40,202,0) 80%);background-origin:border-box;background-position:0 0,0 0;background-repeat:no-repeat;background-size:100% 100%,100% 100%;padding:.125rem;position:relative;width:100%;z-index:400}.disable-form{pointer-events:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.disable-contact-form{display:none}.contact-form--container .section-title{padding-top:4rem}.contact-form--container .section-title h3{-webkit-text-stroke:0;text-wrap:balance;background-clip:border-box;background-clip:initial;color:var(--white2);font-size:23px!important;line-height:1.5;text-align:center!important;width:100%}.contact-form--wrapper{display:flex;flex-direction:column;height:100%;margin:0 auto;max-width:1200px;width:100%}.contact-form{grid-row-gap:2rem;border:1px solid transparent;border-radius:20px;box-shadow:inset 0 1px 1px -1px #3b3b3b;display:grid;grid-template-columns:1fr;margin:0 auto;max-width:560px;overflow:hidden;position:relative;row-gap:2rem;width:100%}.success-message{align-items:center;background:var(--offsetblack1);color:var(--white1);display:flex;font-size:.875rem;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:9999}.success-message span{animation:c 1.5s infinite}.form-group{padding:0 2rem}.form-group label,.form-group p{color:var(--white2);display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.contact-form .form-group:first-child{padding-top:2rem}.contact-form .form-group:last-child{padding-bottom:2rem}.contact-method-group{align-items:center;border-radius:5px;border-radius:var(--br-1);display:flex;margin-bottom:1rem;padding:4px;width:10rem}.contact-method-group span{height:1.75rem;position:relative;width:5rem}.contact-method-group span label{background:0 0;border:1px solid transparent;border-radius:5px;border-radius:var(--br-1);color:var(--white1);cursor:pointer;font-weight:400;height:100%;line-height:1.75rem;text-align:center;width:100%}.contact-method-group span input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;height:100%;margin:0;opacity:0;outline:0;padding:0;position:absolute;width:100%;z-index:-1}.contact-method-group span input:checked+label{background:var(--black4);border:1px solid #025b74;border:1px solid var(--primary2);color:var(--white1);opacity:1}.form-group--submit{display:flex;justify-content:flex-end}.submit-form--btn{background:0 0;border:1px solid var(--black2);border-radius:5px;border-radius:var(--br-1);color:var(--white2);cursor:not-allowed;font-size:.875rem;padding:.5rem 2rem;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn-allow{background:var(--black0);border:1px solid #025b74;border:1px solid var(--primary2);color:var(--white1);cursor:pointer;pointer-events:all;transition:background .15s cubic-bezier(.4,0,.2,1);transition:var(--tbg1);-webkit-user-select:all;-moz-user-select:all;user-select:all}.invalid{border:1px solid #cf007a;border:1px solid var(--red1)}.contact-method-group span label:hover{opacity:.7;transition:var(topac1)}.btn-allow:hover{background:var(--grey2)}@media screen and (max-width:720px){.contact-form--container .section-title h3{font-size:4vw!important}}.toast-wrapper{bottom:0;left:0;margin:0 auto;max-width:90vw;position:fixed;right:0;width:100%;z-index:9999}.toast{align-items:center;border-radius:8px;bottom:2rem;box-shadow:var(--bs-md);display:flex;height:64px;overflow:hidden;position:absolute;right:2rem;transition:all .35s cubic-bezier(.25,.75,.6,.98);transition:var(--ttoast1);width:min(420px,70vw)}[data-toast-type=success]{background:#0089ae!important;background:var(--primary1)!important;color:#fff!important}[data-toast-type=error]{background:#d63437!important;color:#fff!important}[data-toast-type=default]{background:var(--black1)!important;color:var(--white1)!important}[data-toast-type=error] .toast-progress--length,[data-toast-type=success] .toast-progress--length{background:rgba(0,0,0,.3)!important}[data-toast-type=error] .toast-close,[data-toast-type=success] .toast-close{color:#fff!important}[data-toast-type=error] .toast-close:hover,[data-toast-type=success] .toast-close:hover{background:hsla(0,0%,100%,.1)!important}[data-toast-type=error] .toast-progress,[data-toast-type=success] .toast-progress{background:hsla(0,0%,100%,.6)!important}[data-toast-type=default] .toast-progress--length{background:hsla(0,0%,100%,.3)!important}[data-toast-type=default] .toast-progress{background:var(--white1)!important}.toast-progress{height:6px;top:1px;z-index:2}.toast-progress,.toast-progress--length{border-radius:2px;left:0;position:absolute;width:100%}.toast-progress--length{background:0 0;height:4px;top:0;z-index:1}.toast-body{height:100%;justify-content:space-between;padding:1rem;width:100%}.toast-body,.toast-close{align-items:center;display:flex}.toast-close{background:0 0;border:0;border-radius:4px;cursor:pointer;font-size:1.25rem;font-weight:400;height:32px;justify-content:center;margin:0;padding:0;position:relative;width:32px;z-index:3}.toast-close:hover{background:var(--offsetblack2)!important}.toast-message{font-size:max(1rem,16px);font-size:var(--fs6);font-weight:400}.toast--2{opacity:.95;transform:scaleX(.95)}.toast--3{opacity:.8;transform:scaleX(.85)}.toast--4{opacity:.65;transform:scaleX(.75)}.hide-toast{opacity:0}@media screen and (max-width:720px){.toast{height:50px;left:0;margin:0 auto;right:0;width:min(70vw,380px)}}.lighthouse-modal--wrapper{align-items:center;animation:a .1s both;background:rgba(0,0,0,.6);display:flex;height:100%;justify-content:center;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:9999}.hide-lh-modal{display:none}.lighthouse-modal{background:var(--black1);border:1px solid var(--black2);border-radius:5px;border-radius:var(--br-1);display:flex;flex-direction:column;height:auto;max-height:80vh;max-width:900px;overflow:hidden;width:90%}.lighthouse-modal__header{align-items:center;background:var(--black1);display:flex;justify-content:space-between;min-height:5rem;padding:1rem}.lh-appname{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(90deg,var(--white1) 0,var(--accent-7) 80%);background-size:100% 200%;color:transparent;font-size:1.125rem;font-weight:500;letter-spacing:-.5px;text-transform:uppercase;transform:scaleY(.88)}.close-lh-btn{align-items:center;background:var(--black1);border:1px solid var(--accent-2);border-radius:5px;border-radius:var(--br-1);color:var(--accent-7);cursor:pointer;display:flex;font-size:1rem;font-weight:400;height:2rem;justify-content:center;margin:0;padding:0;transform:scaleX(115%);width:2rem}.close-lh-btn:hover{background:var(--accent-1)}.lighthouse-modal__body{display:grid;grid-template-areas:"a b b" "a b b";grid-template-columns:1fr auto auto;height:calc(100% - 4rem);overflow-y:auto;width:100%}.lh-main{align-items:center;background:linear-gradient(180deg,var(--black0) 40%,var(--black1));box-shadow:0 0 0 1px var(--black2);display:flex;filter:drop-shadow(0 8px 30px rgba(0,0,0,.12));flex-direction:column;grid-area:a;justify-content:center;max-width:320px;min-width:200px;position:relative;width:100%;z-index:2}.lh-main:before{background:var(--black0);border-right:1px solid var(--black2);border-top:1px solid var(--black2);border-top-right-radius:2px;content:"";height:14px;left:100%;position:absolute;transform:translateX(-45%) rotate(45deg);width:14px}.lh-main__score{align-items:center;background:#16cf6b;border-radius:50%;border-radius:var(--br-half);color:#fff;display:flex;flex-direction:column;font-size:1.75rem;font-weight:700;height:8rem;justify-content:center;padding:10px 5px;position:relative;width:8rem}.lh-main__score:after{border:8px solid #fff;border-radius:50%;border-radius:var(--br-half);bottom:0;content:"";height:90%;left:0;margin:auto;position:absolute;right:0;top:0;width:90%}.lh-main__score-title{background:linear-gradient(to right bottom,var(--black4),var(--black0),var(--accent-1));border:1px solid var(--black3);border-radius:5px;border-radius:var(--br-1);color:var(--white0);font-size:.875rem;font-weight:500;height:2.5rem;line-height:2.5rem;margin:1.5rem 0;overflow:hidden;padding:0 1.5rem;position:relative}.lh-main__score-title:hover{background:var(--black2)}.lh-main__score-subtitle{color:var(--white1);font-size:.875rem;font-weight:400;line-height:1.4;opacity:.8;padding:0 .5rem}.lh-sub{border:none;display:flex;flex-direction:column;padding:1.5rem;position:relative;text-align:left;width:100%}.lh-sub:nth-child(-n+3){border-bottom:1px solid var(--black2)}.lh-sub:nth-child(2n){border-right:1px solid var(--black2)}.lh-sub-title{color:var(--white1);font-size:1rem;font-weight:500;width:100%}.lh-sub__metrics{align-items:center;display:flex;height:2.5rem;justify-content:space-between;margin-top:10px;width:100%}.lh-sub__metrics-title{color:#1aad5f;font-size:1.375rem;font-weight:700;margin-top:.75rem}.lh-sub__metrics-sm{color:var(--white1);font-size:.875rem;font-weight:500;margin-left:6px;opacity:.8}.lh-sub__metrics-score{align-items:center;border:2px solid #16cf6b;border-radius:50%;border-radius:var(--br-half);color:var(--white2);display:flex;font-size:.875rem;height:2.25rem;justify-content:center;width:2.25rem}.lh-sub hr{background:var(--black2);border:none;height:1px;margin:1.25rem 0;width:100%}.lh-sub-subtitle{color:var(--white1);font-size:.95rem;font-weight:500;line-height:1.4;opacity:.8}@media screen and (max-width:768px){.lighthouse-modal{height:100%}.lighthouse-modal__body{display:grid;grid-template-areas:"a" "b" "b" "b";grid-template-columns:1fr;width:100%}.lh-main{max-width:100%;width:100%}.lh-main:before{background:var(--black1);left:auto;top:100%;transform:translateY(-45%) rotate(135deg)}.lh-sub,.lh-sub:nth-child(-n+3),.lh-sub:nth-child(2n){border-bottom:1px solid var(--black3)}.lh-sub{height:200px;max-width:100%}}@media screen and (max-width:490px){.lighthouse-modal{width:100%}}.spinner-wrapper{align-items:center;display:flex;height:4rem;justify-content:center;width:4rem}.spinner{height:100%;position:relative;transform:translate(2rem,2rem);width:100%}.spinner-cell{animation:d 1.2s linear infinite;background:var(--accent-6);border-radius:5px;border-radius:var(--br-1);height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.project-overview--wrapper{align-items:center;animation:a .1s both;background:rgba(0,0,0,.4);display:flex;height:100%;justify-content:center;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:9999}.project-overview--modal{background:var(--black4);display:flex;flex-direction:column;height:90%;max-height:1200px;max-width:900px;overflow:hidden;width:90%}.hide-po{display:none}.po-header{align-items:center;background:linear-gradient(210deg,rgba(50,145,255,.05),var(--black4));border-bottom:1px solid rgba(50,145,255,.15);display:flex;height:4rem;justify-content:space-between;padding:1rem}.po-header--title{line-height:.8}.po-header--title h3{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(90deg,var(--white1) 0,var(--accent-7) 80%);background-size:100% 200%;color:transparent;font-size:1.125rem;font-weight:500;letter-spacing:-.5px;text-transform:uppercase;transform:scaleY(.92)}.po-header--title span{color:var(--white2);font-size:.875rem}.po-header--close{align-items:center;background:var(--black1);border:1px solid var(--accent-2);border-radius:5px;border-radius:var(--br-1);color:var(--accent-7);cursor:pointer;display:flex;font-size:1.125rem;height:2.25rem;justify-content:center;margin:0;padding:0;transform:scaleX(115%);width:2.25rem}.po-header--close:hover{background:var(--accent-1)}.po-body{background:linear-gradient(to bottom,var(--black0),var(--black4) 50%);display:flex;flex-direction:column;overflow-y:scroll;padding:2rem 1rem 1rem}.po-body hr{border-bottom:1px solid var(--black2);border-top:1px solid var(--black2);height:1px;margin:.5rem 0;width:100%}.po-title{align-items:center;display:flex;font-size:1.125rem;font-weight:700;height:3.5rem;margin-top:2rem;padding-left:1rem;text-transform:uppercase}.po-title:first-child{margin-top:0}.po-horiz{height:2rem;margin:1rem 0;width:100%}.proj-overview--links{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start;margin:1rem 0 4rem;padding:0 .5rem;width:100%}.proj-overview--links a{background:linear-gradient(to right bottom,var(--black4),var(--black0),var(--accent-1));border:1px solid var(--black3);border-radius:5px;border-radius:var(--br-1);color:var(--white0);font-size:.875rem;font-weight:500;height:2.5rem;line-height:2.5rem;margin:.25rem;overflow:hidden;padding:0 2rem;position:relative;text-transform:capitalize}.proj-overview--links a:hover{background:linear-gradient(to right bottom,var(--black2),var(--black1),var(--accent-1));border:1px solid var(--white1);color:var(--white1)}.po-list{display:flex;flex-direction:column;list-style-type:circle;margin:1rem 0}.po-list--item{align-items:center;display:flex;line-height:1.25;list-style:circle;margin:.5rem 0;opacity:.9;padding-left:1rem;position:relative}.po-list--item:before{content:"- ";left:0;position:absolute;top:0}.floating-menu{height:auto;margin:1rem auto 3rem;max-width:1140px;max-width:var(--max-width-md);padding:1rem 0;width:100%;z-index:1000;z-index:var(--z-modal)}[data-floating-menu-loaded=false] *{color:transparent}.floating-menu--fixed{position:fixed;top:4rem;top:var(--header-height)}.float-options{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:0 auto;min-height:80px;width:100%}.float-options,.float-options li{align-items:center;position:relative}.float-options li{background:0 0;display:flex;height:auto;min-height:70px;padding:0 .25rem}.float-options li a{align-items:flex-start;color:var(--white1);cursor:pointer;display:flex;flex-direction:column;font-size:1rem;font-weight:500;justify-content:center;line-height:1.2;padding:.5rem;transition:background .15s ease;width:100%}.float-options li a span:first-child:before{content:attr(data-proj-title-index);font-weight:400;left:0;letter-spacing:-.05em;line-height:1.2;opacity:.7;position:absolute;transform:scale(.8)}.float-options li a span:last-child{font-size:80%;font-weight:400;margin-top:.25rem;opacity:.85;text-transform:uppercase;transform:scaleY(.9)}.float-options li:hover{background:var(--black1);text-shadow:1px 1px 12px var(--offsetsecondary2);transition-duration:.15s;transition-property:background,border,text-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.popup-picture{background:var(--offsetblack0);bottom:0;display:flex;flex-direction:column;height:100vh;left:0;margin:auto;overflow:hidden;position:fixed;right:0;top:0}.popup-picture__header{height:4rem;height:var(--header-height);overflow:hidden;width:100%}.popup-picture__header-content{align-items:flex-end;background:var(--offsetblack0);display:flex;height:100%;justify-content:center;margin:0 auto;overflow:hidden;width:100%}.popup-picture__info{color:var(--white1);font-size:1.125rem;font-weight:400;text-align:center;width:100%}.popup-picture__close{border:1px solid var(--white2);cursor:pointer;font-size:1.25rem;height:2.5rem;width:5rem}.popup-picture__close:hover{background:var(--accent-3)}.popup-picture__imgwrapper{align-items:center;display:flex;height:calc(100vh - 4rem);height:calc(100vh - var(--header-height));justify-content:center;margin:0 auto;overflow:hidden;padding:1rem;position:relative;width:100%}.popup-picture img{filter:contrast(1.1) grayscale(10%);height:min(900px,90vh - 4rem);height:min(var(--htvh),90vh - var(--header-height));image-rendering:-o-crisp-edges;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center;position:relative}.popup-picture img:before{border:1px solid var(--black2);content:"";height:100%;left:0;position:absolute;top:0;width:100%}@media screen and (max-width:720px){.popup-picture{height:min(540px + var(-header-height),100vh);height:min(var(--htvh2) + var(-header-height),100vh)}.popup-picture img{height:min(540px,90vh - 4rem);height:min(var(--htvh2),90vh - var(--header-height))}}.tooltip{text-wrap:balance;align-items:center;height:35px;max-width:220px;opacity:0;transition-duration:.2s;transition-property:opacity;transition-timing-function:cubic-bezier(.25,.75,.6,.98);transition-timing-function:var(--bez-4);width:220px;z-index:9999}.tooltip,.tooltip-caret{display:flex;justify-content:center;position:absolute}.tooltip-caret{align-items:flex-end;height:20px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:20px;z-index:1}.tooltip-caret img{height:100%;width:100%}.tooltip-content{align-items:center;background:#101112;border:1px solid #202124;border-radius:5px;border-radius:var(--br-1);color:#fff;display:flex;font-size:.85rem;font-weight:400!important;height:100%;justify-content:center;line-height:1;margin:0 auto;padding:.5rem;position:relative;width:auto;z-index:2}[data-tooltip-active=false]{left:0;top:0;visibility:hidden}[data-tooltip-active=true]{opacity:1;visibility:visible}.footer{background:var(--black0);flex-direction:column;height:240px;justify-content:center;margin:0 auto;max-width:1200px;overflow:hidden;position:relative;width:100%;z-index:500}.footer,.footer-links{align-items:center;display:flex}.footer-links{flex-wrap:wrap;height:8rem;justify-content:space-evenly;margin-top:2rem}.footer a{color:var(--accent-7);font-size:.875rem;font-weight:700;height:3rem;letter-spacing:.03em;line-height:3rem;margin:0 .25rem;padding:0 1rem;position:relative;text-transform:uppercase;transform:scale(.9,.8)}.footer a:after{background:0 0;bottom:0;content:"";height:2px;left:0;margin:0 auto;position:absolute;right:0;width:80%}.footer a:hover{background:var(--black4)}.footer a:hover:after{background:var(--accent-7);transition:background .35s cubic-bezier(.25,.75,.6,.98);transition:background .35s var(--bez-3)}.ascii-wrapper{align-items:center;color:var(--accent-7);display:flex;font-family:monospace;font-size:10px;font-weight:700;height:-moz-fit-content;height:fit-content;justify-content:center;padding-top:2rem;pointer-events:none;transform:scale(.95) translateY(-10%);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:pre;width:100%}@media screen and (max-width:490px){.ascii-wrapper{transform:scale(.65)}} \ No newline at end of file diff --git a/style.c8d88c99.css b/style.c8d88c99.css new file mode 100644 index 0000000..dcf897e --- /dev/null +++ b/style.c8d88c99.css @@ -0,0 +1 @@ +.theme__dark{--accent-1:#111;--accent-2:#222;--accent-3:#333;--accent-4:#444;--accent-5:#555;--accent-6:#888;--accent-7:#eaeaea;--accent-8:#fafafa;--black0:#000;--black1:#0e0e0f;--black2:#333;--black3:#333;--black4:#090909;--grey2:#1a1a1a;--grey3:#000;--grey4:#27272a;--grey5:#262b30;--grey6:#6d6e77;--grey7:#a3a5ad;--grey8:#b6b9c2;--white0:#fff;--white1:#f7f5f5;--white2:#cccbcb;--white3:#e7ecf4;--offsetblack0:rgba(0,0,0,.9);--offsetblack1:rgba(0,0,0,.6);--offsetblack2:rgba(0,0,0,.2);--offsetblack3:hsla(0,0%,9%,.1);--offsetblack4:rgba(8,8,8,.99);--offsetwhite1:hsla(0,0%,100%,.05);--offsetwhite2:hsla(0,0%,100%,.1);--offsetsecondary1:rgba(50,145,255,.1);--offsetsecondary2:hsla(0,0%,100%,.4);--bs-md:rgba(0,0,0,.2) 0 1px 2px 0,rgba(0,0,0,.1) 0 1px 3px 0;--bs-lg:0 30px 60px rgba(0,0,0,.12);--bs-inset1:inset 0 0 10px 8px hsla(0,0%,7%,.3),inset 0 0 10px 8px hsla(0,0%,7%,.2);--selection:#f81ce5;--link:#7f95f5;--link2:#0089ae;--linear1:linear-gradient(0deg,var(--offsetwhite1),var(--offsetwhite1)),radial-gradient(50% 50% at 50% 100%,var(--offsetwhite2) 0%,transparent 100%)}.theme__light{--accent-1:#f1f1f1;--accent-2:#f5f5f5;--accent-3:#f5f5f5;--accent-4:#d4d4d4;--accent-5:#d4d4d4;--accent-6:#888;--accent-7:#333;--accent-8:#111;--black0:#fff;--black1:#fafafa;--black2:#d4d4d4;--black3:#555;--black4:#fafafa;--grey2:#d9d9d9;--grey3:#fff;--grey4:#f7f7f8;--grey5:#94989c;--grey6:#6d6e77;--grey7:#212122;--grey8:#212122;--white0:#000;--white1:#171717;--white2:#4c4c4c;--white3:#212122;--offsetblack0:#fff;--offsetblack1:hsla(0,0%,100%,.8);--offsetblack2:hsla(0,0%,100%,.5);--offsetblack3:hsla(0,0%,100%,.2);--offsetblack4:hsla(0,0%,100%,.96);--offsetwhite1:rgba(0,0,0,.05);--offsetwhite2:rgba(0,0,0,.1);--offsetsecondary1:rgba(50,145,255,.1);--offsetsecondary2:rgba(0,0,0,.3);--bs-md:rgba(0,0,0,.2) 0 1px 2px 0,rgba(0,0,0,.1) 0 1px 3px 0;--bs-lg:0 30px 60px rgba(0,0,0,.12);--bs-inset1:rgba(0,0,0,.2) 0 1px 2px 0,rgba(0,0,0,.1) 0 1px 3px 0;--selection:#7fffe1;--link:#153def;--link2:#212122;--linear1:linear-gradient(0deg,hsla(0,0%,9%,.4),rgba(8,8,8,.05)),radial-gradient(50% 50% at 50% 100%,rgba(40,40,40,.2) 0%,rgba(0,0,0,.8) 100%)}@font-face{font-display:swap;font-family:Neue;font-style:normal;font-weight:400;src:url(fonts/NeueMontreal-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Neue;font-style:normal;font-weight:500;src:url(fonts/NeueMontreal-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Neue;font-style:normal;font-weight:700;src:url(fonts/NeueMontreal-Bold.woff2) format("woff2")}@font-face{font-display:swap;font-family:basement;font-style:normal;font-weight:900;src:url(fonts/basement-expanded.woff2) format("woff2")}:root{--primaryFont:"Neue",sans-serif,-apple-system,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,sans-serif,monospace;--secondaryFont:"basement",georgia,sans-serif,-apple-system,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,sans-serif,monospace;--wtvw:1600px;--htvh:900px;--wt:1600;--ht:900;--ap:calc(var(--wt)/var(--ht));--ap2:calc(100%*(var(--ht)/var(--wt)));--wt2:720;--ht2:540;--htvh2:540px;--wtvw2:720px;--apsmall:calc(var(--wt2)/var(--ht2));--ap2small:calc(100%*(var(--ht2)/var(--wt2)));--fs0:max(34px,2.8rem);--fs1:max(32px,2.8rem);--fs2:max(25px,2.2rem);--fs3:max(20px,1.8rem);--fs4:max(22px,1.6rem);--fs5:max(1.125rem,16px);--fs6:max(1rem,16px);--z-main:500;--z-footer:600;--z-sidebar:700;--z-header:800;--z-aside:900;--z-modal:1000;--z-toast:1100;--skill-section-height:300px;--skill-section-height-sm:200px;--primary1:#0089ae;--primary2:#025b74;--primary3:#013948;--red1:#cf007a;--convert-to-primary:invert(33%) sepia(61%) saturate(1000%) hue-rotate(171deg) brightness(90%) contrast(101%);--intro-offset:12vh;--header-height:4rem;--max-width-md:1140px;--max-width-lg:1280px;--br-1:5px;--br-2:8px;--br-3:10px;--br-4:12px;--br-half:50%;--br-full:9999px;--tbg1:background .15s cubic-bezier(.4,0,.2,1);--tbg2:background-color .2s cubic-bezier(.4,0,.2,1);--tbg3:background-color 100ms cubic-bezier(.4,0,.2,1);--tt1:transform .2s ease-in-out;--tc1:color .2s ease-in-out;--ttop1:top .2s ease-in-out;--topac1:opacity .2s ease-in-out;--ttoast1:all .35s cubic-bezier(.25,.75,.6,.98);--ttooltip1:all .25s cubic-bezier(.25,.75,.6,.98);--bez-1:cubic-bezier(.4,0,.2,1);--bez-2:cubic-bezier(.33,1,.68,1);--bez-3:cubic-bezier(.25,.75,.6,.98);--bez-4:cubic-bezier(.25,.75,.6,.98)}*,:after,:before{border:0;box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-size:18px;line-height:1.15;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--black0);color:var(--white1);font-size:1rem;font-weight:400;line-height:inherit;overflow-x:hidden;overflow-y:scroll;position:relative;width:100%}a,body,button,div,h1,h2,h3,h4,input,li,p,span,textarea,ul{font-family:Neue,sans-serif,-apple-system,ui-sans-serif,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,monospace;font-family:var(--primaryFont)}h1,h2,h3,h4{font-weight:700}button{background:0 0;cursor:pointer;line-height:1.15;margin:0;outline:0;padding:0;text-transform:none}input{line-height:1.15;margin:0;outline:0}input,textarea{background:0 0;border:1px solid var(--black2);border-radius:5px;border-radius:var(--br-1);color:var(--white1);font-size:.875rem;padding:.5rem;text-transform:none;width:100%}textarea{min-height:4rem;resize:none}ul{list-style:none}a{color:var(--link);-webkit-text-decoration:none;text-decoration:none}img{border:0;height:auto;margin:0;max-height:100%;max-width:100%;padding:0}a>img,button>img,span>img{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:link img,:visited img,a img{border:none}input::-moz-placeholder{color:var(--white2);font-size:.875rem;opacity:1}input::placeholder{color:var(--white2);font-size:.875rem;opacity:1}a:focus-visible,button:focus-visible,input:focus-visible,input[type=radio]:focus-visible+label,label:focus-visible,textarea:focus-visible{outline:1.5px dotted var(--white1)}svg{fill:var(--white1);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}::-moz-selection{background-color:var(--selection);color:var(--white1)}::selection{background-color:var(--selection);color:var(--white1)}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}img[disabled]{-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:.5;pointer-events:none}a[disabled],button[disabled],img[disabled],input[disabled]{-webkit-user-select:none;-moz-user-select:none;user-select:none}a[disabled],button[disabled],input[disabled]{cursor:not-allowed}.img-icon{filter:invert(1);height:1rem;width:1rem}.theme__light .img-icon{filter:invert(0)}.body-prevent-scroll{overflow:hidden}.scrollbar-measure{overflow:scroll;position:absolute;visibility:hidden}[data-disable-transitions=true] *{animation:none!important;transition:none!important;transition-duration:none!important;transition-property:none!important;transition-timing-function:none!important}.skeleton{animation:b 8s ease-in-out infinite;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(270deg,var(--grey2),var(--grey3),var(--grey3),var(--grey2));background-size:400% 100%;color:transparent;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.skeleton::-moz-placeholder{color:transparent;opacity:0}.skeleton::placeholder{color:transparent;opacity:0}[data-active-popup=false]{height:0!important;left:0;margin:0!important;opacity:0!important;pointer-events:none!important;top:0;transition:opacity .2s ease-in-out;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important;visibility:hidden!important;width:0!important;z-index:-1!important}[data-active-popup=true]{height:100%;opacity:1;pointer-events:auto;transition:opacity .2s ease-in-out;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto;visibility:visible;width:100%;z-index:9999}@keyframes a{0%{opacity:0}50%{opacity:.5}to{opacity:1}}@keyframes b{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes c{0%{opacity:0}50%{opacity:1}to{opacity:0}}@keyframes d{0%{opacity:1}to{opacity:.15}}@media screen and (max-width:1020px){html{font-size:16px}}@media screen and (max-width:390px){html{font-size:14px}}.header{-webkit-backdrop-filter:saturate(180%) blur(5px);backdrop-filter:saturate(180%) blur(5px);background:rgba(0,0,0,.93);border-bottom:1px solid rgba(80,85,90,.15);box-shadow:0 12px 36px rgba(1,57,72,.15);height:4rem;height:var(--header-height);left:0;max-width:100vw;position:fixed;top:0;width:100%;z-index:800;z-index:var(--z-header)}.header-wrapper{justify-content:space-between;margin:0 auto;max-width:1140px;max-width:var(--max-width-md);padding:0 1rem;position:relative}.header-logo--wrapper,.header-wrapper{align-items:center;display:flex;height:100%;width:100%}.header-logo{align-items:center;cursor:pointer;display:flex;height:42px;justify-content:center;opacity:.9;width:42px}.header-logo img{height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.header-nav{position:relative}.header-nav,.nav-menu{align-items:center;display:flex;height:100%;justify-content:space-between;width:100%}.nav-menu{overflow:hidden}.nav-menu img,.nav-menu span{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.nav-menu li{height:4rem;height:var(--header-height);padding:.85rem .5rem;width:auto}.nav-menu li,.nav-menu li a{align-items:center;display:flex}.nav-menu li a{background-color:transparent;border:0;border-radius:9999px;border-radius:var(--br-full);box-shadow:none;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;height:100%;justify-content:center;letter-spacing:.02em;margin:0;opacity:.9;padding:0 .85rem;position:relative;text-align:center;transform:scaleY(.9);width:100%}.contact-nav--btn span{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.nav-menu--link__arrow{height:18px!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:18px!important}.header-right{align-items:center;display:flex;height:100%;justify-content:flex-end;width:100%}.theme-modal{display:flex;justify-content:center;z-index:9999}.theme-switch{align-items:center;background:rgba(8,8,8,.99);border:1px solid #111;border-radius:9999px;border-radius:var(--br-full);display:flex;flex-direction:row;height:36px;justify-content:space-around;position:relative;width:72px}.theme-switch span label img{opacity:.8}.theme-switch span input:checked+.theme-label--two img{opacity:1}.theme-switch span input:checked+label{background:#212223}.theme-switch span input:checked+label img{opacity:1}.theme-switch span{align-items:center;display:flex;height:32px;justify-content:center;width:32px}.theme-switch span input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;margin:0;outline:0;padding:0;position:absolute;z-index:-1}.theme-switch span label{align-items:center;background:0 0;border-radius:50%;border-radius:var(--br-half);color:#fff;cursor:pointer;display:flex;height:100%;justify-content:center;width:100%}.header-logo:hover{opacity:.6;transition:opacity .2s ease-in-out}.nav-menu li a:hover,.theme-switch span label:hover img{opacity:1}[data-contact-menu-open=true] a{background-color:#fff!important;transition:background-color .2s cubic-bezier(.4,0,.2,1);transition:var(--tbg2)}[data-contact-menu-open=true] a span{color:#000}[data-contact-menu-open=true] .nav-menu--link__arrow{filter:invert(1)!important;transform:rotate(180deg)!important}@media screen and (max-width:720px){.header-logo--wrapper{display:none}.nav-menu li a{padding:.625rem}.nav-menu--link__arrow{display:none}}@media screen and (max-width:490px){.header-wrapper{padding:0 .5rem}.nav-menu li a{padding:.5rem .25rem}.nav-menu li:last-child a{padding-right:.5rem}.nav-menu li:nth-child(2){display:none}}.gradient-overlay--one{background:linear-gradient(320.54deg,#00069f,#120010 72.37%),linear-gradient(58.72deg,#69d200,#970091),linear-gradient(121.28deg,#8cff18,#6c0075),linear-gradient(121.28deg,#8000ff,#222),linear-gradient(180deg,#00ff19,#24ff00 .5%,#2400ff),linear-gradient(52.23deg,#0500ff,red),linear-gradient(121.28deg,#32003a,#ff4040),radial-gradient(50% 72.12% at 50% 50%,#eb00ff 0,#105 100%);background-blend-mode:screen,color-dodge,color-burn,screen,overlay,difference;background-size:110% 110%;height:calc(100vh + 2px);left:0;margin:-12vh auto 0;margin:calc(0vh - var(--intro-offset)) auto 0 auto;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:100}.gradient-noir{filter:contrast(1.5) hue-rotate(294deg)}.gradient-overlay--two{background-image:url(images/top2.61b852c7.webp);background-position:50%;background-repeat:round;filter:brightness(1.2);height:calc(100vh + 2px);left:0;margin:-12vh auto 0;margin:calc(0vh - var(--intro-offset)) auto 0 auto;mix-blend-mode:darken;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:200}.gradient-overlay--one:after{background:hsla(0,0%,100%,.1);content:"";height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%;z-index:9999}.section-divider{box-shadow:0 0 0 .5px #013948;box-shadow:0 0 0 .5px var(--primary3);height:1px;margin:0 auto;position:relative;width:100%}.section-gradient--l{background:linear-gradient(180deg,#0089ae 0,#013948 50%,#025b74 80%);background:linear-gradient(to bottom,var(--primary1) 0,var(--primary3) 50%,var(--primary2) 80%);border-radius:100%;filter:blur(48px);height:100%!important;margin-top:-49px;max-height:48px!important;min-height:48px!important;mix-blend-mode:normal;opacity:.8;pointer-events:none;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.theme__light .section-gradient--l{opacity:.6}.intro-container{height:calc(88vh + 2px);height:calc(100vh - var(--intro-offset) + 2px);margin:0 auto;max-width:1280px;max-width:var(--max-width-lg);position:relative}.intro-header,.intro-header__subtitles{align-items:center;display:flex;flex-direction:column;height:100%;position:relative;width:100%}.intro-header__subtitles{justify-content:center;margin:0 auto;max-width:1140px;max-width:var(--max-width-md);padding-bottom:4rem;z-index:200}.intro-header__subtitles h1{text-wrap:nowrap;background:0 0;color:#e7ecf4;font-family:basement,georgia,sans-serif,-apple-system,ui-sans-serif,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,monospace;font-family:var(--secondaryFont);font-size:max(34px,2.8rem);font-size:var(--fs0);letter-spacing:.05em;line-height:1;opacity:.92;position:relative;width:auto;z-index:-1}.intro-header__subtitles h1:before{-webkit-text-stroke:1px #ddd;-webkit-background-clip:text;background-clip:text;bottom:0;color:transparent;content:"webdev";letter-spacing:.03rem;padding-right:1.25rem;padding-top:.5rem;position:absolute;right:0;transform:translateY(100%)}.intro-container--links{align-items:center;bottom:0;display:flex;height:10rem;justify-content:center;margin:0 auto;position:absolute;width:100%;z-index:201}.intro-container--links a{align-items:center;background:rgba(0,0,0,.7);border:1px solid rgba(36,39,44,.5);border-radius:5px;border-radius:var(--br-1);color:#e7ecf4;display:flex;font-size:.9rem;height:2.5rem;letter-spacing:.02em;margin:0 .5rem;padding:.5rem 1rem;position:relative}.intro-container--links a img{filter:invert(1);height:1.25rem;margin-right:.75rem;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1.25rem}.intro-container--links a:hover{background:#141516;border-color:var(--grey6);transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.intro-observer-ref{bottom:0;height:4rem;height:var(--header-height);left:0;pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:-1}@media screen and (max-width:840px){.intro-header__subtitles h1{font-size:5vw}}.main{align-items:center;display:flex;flex-direction:column;height:100%;position:relative;width:100%}.section-container{padding-bottom:4rem;padding-left:.5rem;padding-right:.5rem}.section-title{display:flex;flex-direction:column;margin:0 auto .5rem;max-width:1140px;max-width:var(--max-width-md);padding:2rem 0 1rem;position:relative;width:100%}.section-title h2,.section-title h3{color:var(--white3);font-family:basement,georgia,sans-serif,-apple-system,ui-sans-serif,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,monospace;font-family:var(--secondaryFont);font-size:max(22px,1.6rem);font-size:var(--fs4);font-weight:900;line-height:.65;padding:.5rem;position:relative;white-space:nowrap}.section-title h2{letter-spacing:5px}.section-title h3{-webkit-text-stroke:1px var(--white2);-webkit-background-clip:text;background-clip:text;color:transparent}.section-subtitle{color:var(--white1);font-size:.875rem;font-weight:500;line-height:1.375;opacity:.9}.section-excerpt{border-bottom:1px solid var(--grey2);display:flex;flex-direction:column;height:auto;justify-content:center;margin:0 auto;max-width:1140px;max-width:var(--max-width-md);padding:1rem 8rem 1rem .5rem;position:relative;width:100%}.section-excerpt p{font-size:1rem;min-height:160px;padding:0 1rem 1rem 0}@media screen and (max-width:720px){.section-title{flex-direction:column}.section-title h2,.section-title h3{font-size:max(22px,1.6rem);font-size:var(--fs4)}.section-excerpt{padding:1rem .5rem}.section-excerpt p{padding-right:2rem}.section-excerpt:after{width:calc(100% - 2rem)}}@media screen and (max-width:580px){.section-title h2,.section-title h3{font-size:max(22px,1.6rem);font-size:var(--fs4)}}.project-content__body{border:none;border-top:1px solid var(--grey2);height:100%;margin:0;overflow:hidden;padding:56.25% 0 0;padding-top:var(--ap2);position:relative;width:100%}.project-content__body:after{background-image:url(images/dark-matter.1b9a3f41.png);background-position:50%;content:"";filter:invert(.3);height:100%;left:0;mix-blend-mode:screen;opacity:.5;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:888}.project-content__body picture{cursor:zoom-in;filter:contrast(110%)}.project-content__body picture img{transition:transform .3s cubic-bezier(.25,.75,.6,.98)}.proj-img{-interpolation-mode:nearest-neighbor;aspect-ratio:1.77778;aspect-ratio:var(--ap);height:100%;image-rendering:auto;left:0;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;position:absolute;top:0;width:100%}.hide-img{-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:-1}.fade-img--in{animation:e .2s forwards}.fade-img--out{animation:e .1s reverse forwards}.img-skeleton{align-items:center;background:var(--offsetblack1);display:flex;height:100%;justify-content:center;left:0;min-height:100%;min-width:100%;position:absolute;top:0;width:100%;z-index:9999}.project-content__body picture:hover img{transform:scale(101%)}@keyframes e{0%{opacity:0}to{opacity:1}}@media screen and (max-width:720px){.project-content__body{padding-top:75%;padding-top:var(--ap2small)}.proj-img{aspect-ratio:1.33333;aspect-ratio:var(--apsmall)}}.projects-container{background:var(--black0);position:relative;scroll-margin-top:4rem;width:100%;z-index:50}.projects-container:before{background-image:url(images/graphy-dark.d637abcf.png);background-position:50%;content:"";height:100%;left:0;opacity:.1;position:absolute;top:0;width:100%}.projects-grid{display:flex;flex-direction:column;height:100%;margin:0 auto;max-width:1140px;max-width:var(--max-width-md);padding:0 .5rem;position:relative;width:100%;z-index:10}.project-cell-divider{height:5rem;margin:1.5rem auto;opacity:.3;outline:1px dotted var(--white1);width:1px;z-index:2000}.project-cell-divider:last-child{height:6rem;margin-bottom:0;margin-top:3rem}@media screen and (max-width:490px){.projects-grid{padding:.5rem}}.project-cell{background:var(--black0);border:1px solid var(--grey2);border-radius:12px;border-radius:var(--br-4);box-shadow:4px 4px 12px rgba(39,42,43,.125);display:flex;flex-direction:column;margin:0 auto;max-width:100%;padding-top:.5rem;position:relative;scroll-margin-top:5rem;width:100%;z-index:500}[data-project-cell-loaded=false] *{color:var(--black0)!important}[data-project-cell-loaded=false] :before{opacity:0!important}.project-cell:after{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:3000}.project-cell__content{display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.project-content__header{align-items:center;display:grid;grid-template-columns:1fr;height:3.5rem;justify-content:center;padding:.5rem;position:relative;width:100%}.subheader-sm{height:3rem!important;padding:0 .5rem!important}.pc__header-tabs{align-items:flex-start;display:flex;height:100%;margin-top:-.5rem;width:100%}.pc__header-tabs span,.pc__header-tabs span label{align-items:center;display:flex;height:100%;position:relative;width:100%}.pc__header-tabs span label{border:1px solid var(--offsetwhite1);border-top:0;color:var(--accent-7);cursor:pointer;font-size:.9rem;font-weight:500;justify-content:center;letter-spacing:-.03em;outline:1px dotted transparent;text-align:center;transform:translateY(.9);transition:background .15s cubic-bezier(.4,0,.2,1);transition:var(--tbg1)}.pc__header-tabs span label:after{content:attr(data-lab-after)}.pc__header-tabs span:last-child label{border-radius:0 8px 0 0;border-radius:0 var(--br-2) 0 0;border-right:none}.pc__header-tabs span:first-child label{border-left:none!important;border-radius:8px 0 0 0;border-radius:var(--br-2) 0 0 0}.pc__header-tabs span input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;margin:0;outline:0;padding:0;position:absolute;z-index:-1}.pc__header-tabs span input:checked+label{background:var(--linear1);border:1px solid var(--offsetwhite2);border-top:none;color:#fff;pointer-events:none}.pc__header-tabs span input:checked+label:before{animation:c 2s ease-in-out infinite;background:#0089ae;background:var(--primary1);border-radius:50%;border-radius:var(--br-half);content:"";height:.35rem;position:absolute;right:.5rem;top:.5rem;width:.35rem}.project-content__subheader{align-items:flex-start;display:flex;justify-content:space-between;overflow:hidden;padding:0 .5rem .5rem;position:relative;width:100%;z-index:1}.project-content__published{align-items:center;color:var(--white2);margin:0 0 .5rem .5rem;pointer-events:none;position:relative;z-index:8888}.content-published--text,.project-content__published{display:flex;width:-moz-fit-content;width:fit-content}.content-published--text{font-family:monospace;font-size:.8rem;font-weight:700;line-height:1.25rem;text-transform:uppercase}.pc__subheader--search{background:var(--black0);border:1px solid var(--offsetwhite2);border-radius:5px;border-radius:var(--br-1);box-shadow:var(--bs-inset1);height:2.25rem;justify-content:flex-start;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc__subheader--search,.pc__subheader--search a{align-items:center;display:flex;position:relative;width:100%}.pc__subheader--search a{border:0;color:var(--white1);font-size:.875rem;font-weight:500;height:100%;opacity:.9;padding:0 3rem 0 .5rem;z-index:1000}.pc__subheader--search span{align-items:center;border-top:2px solid transparent;display:flex;height:100%}.comp-search--text{text-transform:capitalize}.pc__subheader--search a:first-child img{height:.75rem;margin:0 .75rem 0 .25rem;opacity:.5;width:.75rem}.pc__subheader--search .search-arrowright,.pc__subheader--search a:first-child img{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pc__subheader--search .search-arrowright{align-items:center;background:0 0;cursor:pointer;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;width:2rem;z-index:1}.pc__subheader--search .search-arrowright img{height:.875rem;width:.875rem}.pc__subheader--links{align-items:center;display:flex;height:2.25rem;width:auto}.pc__subheader--links a{align-items:center;background:linear-gradient(90deg,#025b74,#013948);background:linear-gradient(to right,var(--primary2),var(--primary3));border:none;border-radius:5px;border-radius:var(--br-1);color:#fff;display:flex;font-size:.875rem;font-weight:400;height:100%;padding:0 .5rem}.pc__subheader--links img{filter:invert(1)!important;height:1rem;margin-right:.5rem;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1rem}.pc__header-tabs span input:focus-visible+label{outline:1px dotted var(--white1)}.pc__subheader--links a:focus-visible,.pc__subheader--search:focus-within{border:1px dotted var(--white1)}.pc__subheader--links a:hover{opacity:.8;transition:opacity .2s ease-in-out;transition:var(--topac1)}.pc__header-tabs span label:hover,.pc__subheader--links button:hover{background:var(--accent-1);transition-duration:.15s;transition-property:background;transition-timing-function:cubic-bezier(.4,0,.2,1)}.pc__subheader--search:hover{background-color:var(--black4);border-color:var(--accent-5);transition-duration:.15s;transition-property:background,border;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media screen and (max-width:840px){.pc__header-tabs span label{font-size:.825rem}}@media screen and (max-width:720px){.pc__header-tabs span label:after{display:none}.subheader-sm{height:3.5rem!important}.pc__header-tabs span input:checked+label:before{display:none}.pc__subheader--search{max-width:80%}.pc__subheader--search a{font-size:15px;font-weight:400;letter-spacing:-.03em}}@media screen and (max-width:540px){.pc__header-tabs{padding-bottom:.25rem}.pc__subheader--links{justify-content:center;width:2.25rem}.pc__subheader--search a img{display:none}.pc__subheader--links img{margin:0}.pc__subheader--links a span{display:none}}@media screen and (max-width:340px){.pc__subheader--search{font-size:.875rem}.proj-cell-tabs .pc__header-tabs span label{color:transparent!important;font-size:.75rem}.pc__header-tabs span label{color:transparent;overflow:hidden;text-align:center}.pc__header-tabs span label:after{align-items:center;color:var(--white1);content:attr(data-lab-sm)!important;display:flex;font-size:.875rem;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}}.project-cell__footer{background:linear-gradient(to bottom,var(--offsetblack0) 0,var(--black0) 30%);border-radius:0 0 8px 8px;border-radius:0 0 var(--br-2) var(--br-2);border-top:2px solid var(--black1);display:flex;flex-direction:column-reverse;height:100%;margin-top:-6rem;padding:.5rem .5rem 1rem;position:relative;width:100%;z-index:999}.project-footer__titles{align-items:center;display:flex;flex-direction:row;height:100%;justify-content:space-between;padding:1.25rem .5rem 0}.project-footer__desc{display:flex;font-size:1.2rem;font-weight:400!important;height:100%;letter-spacing:-.02em;min-height:2.75rem;opacity:.825;padding-right:1rem;position:relative;transform:scaleY(.9);width:70%}.pf-stacks{width:auto}.pf-stack,.pf-stacks{align-items:center;display:flex;position:relative}.pf-stack{border-radius:50%;border-radius:var(--br-half);height:3rem;justify-content:center;margin-left:.75rem;overflow:hidden;width:3rem}.pf-stack:before{border:12px solid transparent;-o-border-image:linear-gradient(to right bottom,var(--accent-6),var(--black1),var(--black0));border-image:linear-gradient(to right bottom,var(--accent-6),var(--black1),var(--black0));border-image-slice:1;border-radius:50%;border-radius:var(--br-half);content:"";height:100%;left:0;position:absolute;top:0;width:100%}.pf-stack:after{background:#000;border-radius:50%;border-radius:var(--br-half);content:"";height:96%;margin:0 auto;position:absolute;width:96%;z-index:2}.theme__light .pf-stack:after{background:var(--black0)}.next-icon,.react-icon,.typescript-icon,.vanilla-icon,.vite-icon,.webpack-icon{filter:contrast(1.1) brightness(1.1);height:32px;position:relative;width:32px;z-index:3}.theme__light .webpack-icon{filter:invert(1)}.project-footer__content{flex-wrap:wrap;height:100%;justify-content:space-between;margin:0 auto;padding:.5rem .5rem .25rem;width:100%}.project-footer__content,.project-footer__title{align-items:center;display:flex;position:relative}.project-footer__title{color:var(--white3);font-family:basement,georgia,sans-serif,-apple-system,ui-sans-serif,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,monospace;font-family:var(--secondaryFont);font-size:1.125rem;font-weight:900;letter-spacing:.05em;min-height:2rem;opacity:.85;padding:1rem 2rem .5rem 0;transform:scaleY(1.25)}.project-footer-btns{align-items:center;display:flex;padding-top:1rem}.project-footer-btns button{border-radius:5px;border-radius:var(--br-1);font-size:.9rem;font-weight:500;overflow:hidden;padding:.625rem 1rem;position:relative;white-space:nowrap}.project-footer-btns button:first-child{background:linear-gradient(to right bottom,var(--black4),var(--black0),rgba(12,206,107,.05));border:1px solid var(--offsetwhite2);color:var(--accent-7);margin-right:.75rem}.project-footer-btns button:first-child:hover{border:1px solid rgba(12,206,107,.2)}.project-footer-btns button:last-child{background:var(--offsetblack1);border:1px solid var(--offsetwhite2);color:var(--white1)}.project-footer-btns button:last-child:hover{background:linear-gradient(to right bottom,rgba(50,145,255,.25),var(--accent-1));color:var(--white1)}@media screen and (max-width:840px){.project-footer__titles{display:none}.project-footer__title{font-size:1rem}.project-cell__footer{background:var(--black0);margin-top:0}}@media screen and (max-width:540px){.project-footer__title{font-size:3.25vw}}.about-container{width:100%}.about-grid{margin:0 auto;max-width:1600px;padding:1rem}.about-grid,.skills-container{display:flex;flex-direction:column;height:100%;position:relative;width:100%}.skills-container{max-width:1200px;scroll-margin-top:4rem}.skills-top{display:flex;flex-direction:column;justify-content:flex-end;margin:0 auto;max-width:1600px}.skills-grid,.skills-top{height:100%;position:relative;width:100%}.skills-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin:1rem auto 2rem;max-width:1200px}.skills-cell{border-left:1px solid var(--grey2);border-radius:5px 0 0 0;border-radius:var(--br-1) 0 0 0;border-top:1px solid var(--grey2);display:flex;flex-direction:column;font-size:1rem;font-weight:500;height:100%;margin:0 auto;max-height:300px;max-height:var(--skill-section-height);min-height:300px;min-height:var(--skill-section-height);position:relative;width:100%}.skills-cell:last-child{border-bottom:0}.skill-title{font-family:basement,georgia,sans-serif,-apple-system,ui-sans-serif,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,monospace;font-family:var(--secondaryFont);font-size:16px;left:1.25rem;letter-spacing:.05rem;position:absolute;top:1.25rem;transform:scaleY(1.2);width:auto;z-index:3}.skill-content{align-items:center;display:flex;flex-direction:column;height:calc(300px - 4rem);height:calc(var(--skill-section-height) - 4rem);list-style-type:none;margin-top:3rem;overflow-y:auto;padding:.5rem 2rem 0 1rem;width:100%}.skill-content li{color:var(--grey8);font-size:.9rem;line-height:1rem;padding-bottom:10px;position:relative;width:100%;z-index:3}.skill-img--wrapper{align-items:flex-start;display:flex;height:2rem;justify-content:flex-end;position:absolute;right:.75rem;top:.75rem;width:2rem}.skill-img--wrapper img{filter:invert(33%) sepia(61%) saturate(1000%) hue-rotate(171deg) brightness(90%) contrast(101%);filter:var(--convert-to-primary);height:100%;pointer-events:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important;width:100%}.theme__light .skill-img--wp{filter:invert(1)!important}.skill-content::-webkit-scrollbar{background:var(--black1);width:9px}.skill-content::-webkit-scrollbar-thumb{background:var(--accent-5);border-radius:10px;border-radius:var(--br-3)}.skill-content::-webkit-scroll-track{background:var(--black1)!important;border-radius:10px;border-radius:var(--br-3)}@media screen and (max-width:840px){.skills-grid{grid-template-columns:1fr}.skills-cell{max-height:200px;max-height:var(--skill-section-height-sm);min-height:200px;min-height:var(--skill-section-height-sm)}}@media screen and (max-width:640px){.skills-cell{grid-template-columns:1fr 2.5rem}.skill-img--wrapper{height:2rem;width:2rem}.skill-img--wrapper img{height:1.75rem!important;width:1.75rem!important}}.contact-container{align-items:center;background:var(--black0);max-width:100vw;padding:2rem .75rem 6rem;position:relative;scroll-margin-top:4rem;z-index:3}.contact-container,.contact-menu__header{display:flex;flex-direction:column;width:100%}.contact-menu__header{animation:a .15s both;background:var(--offsetblack4);border:1px solid var(--black1);border-radius:8px;border-radius:var(--br-2);box-shadow:var(--bs-lg);height:min(600px,95vh - 4rem);height:min(600px,95vh - var(--header-height));left:0;margin:0 auto;max-height:90%;max-width:min(640px,90vw);min-height:400px;opacity:1;overflow:hidden;position:fixed;right:0;z-index:9998}[data-contact-menu-disabled=true]{display:none;height:0!important;position:relative;visibility:hidden;width:0!important;z-index:-1!important}.contact-menu__body{align-items:center;grid-template-columns:min(380px,40%) 1fr;justify-content:center;margin:0 auto;max-width:1200px;min-height:600px}.cm-left,.contact-menu__body{display:grid;height:100%;position:relative;width:100%}.cm-left{grid-row-gap:.5rem;background:var(--offsetblack3);grid-template-columns:1fr;grid-template-rows:auto 1fr 128px;overflow:hidden;padding-right:1rem;row-gap:.5rem}.cm-left:after{background-image:url(images/beanstalk-dark.abf0b83b.webp);background-position:50%;content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:-1}.theme__light .cm-left:after{filter:invert(1)}.cm-left__body,.cm-left__footer,.cm-left__header{display:flex;height:100%;width:100%}.cm-left__header{color:var(--white0);flex-direction:column;font-size:1.125rem;padding:.5rem}.cm-left__header h3{font-family:basement,georgia,sans-serif,-apple-system,ui-sans-serif,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,blinkmacsystemfont,segoe ui,roboto,helvetica neue,arial,noto sans,monospace;font-family:var(--secondaryFont)}.cm-left__header h3:last-child{-webkit-text-stroke:1px var(--white2);-webkit-background-clip:text;background-clip:text;color:transparent}.cm-left__footer{display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr;width:100%}.cm-left__footer-relocate{align-items:center;color:var(--accent-8);text-transform:uppercase;transform:scaleY(.9)}.cm-left__footer-location,.cm-left__footer-relocate{display:flex;font-weight:500;height:100%;padding:.25rem;width:100%}.cm-left__footer-location{color:var(--accent-7);flex-direction:column;line-height:1.5rem}.cm-right{box-shadow:var(--bs-md);grid-template-columns:1fr;grid-template-rows:1fr auto;position:relative;z-index:1000}.cm-right,.cm-right--top{display:grid;height:100%;width:100%}.cm-right--top{color:var(--accent-5);grid-template-columns:1fr 1fr;overflow:hidden}.cm-right--top__cell{cursor:pointer;display:flex;flex-direction:column;height:100%;width:100%}.cm-right--top__cell:focus-within{outline:1px dotted var(--white1)}.cm-right--top__cell:nth-child(odd){border-right:1px solid var(--offsetwhite1)}.cm-right--top__cell:nth-child(-n+2){border-bottom:1px solid var(--offsetwhite1)}.cm-right--top__cell-badge{color:var(--white0);cursor:pointer;display:flex;flex-direction:column;font-weight:500;height:100%;padding:1.5rem;width:100%}.badge-top{height:100%;width:100%}.badge-top--container--svg{align-items:center;border-radius:50%;border-radius:var(--br-half);display:flex;justify-content:center;min-height:3rem;min-width:3rem;overflow:hidden}.badge-top--container--svg img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.badge-top--profile{display:flex;font-size:.9rem;max-height:3rem}.badge-mug{border-radius:50%;border-radius:var(--br-half);height:3rem!important;width:3rem!important}.badge-top span{margin-left:auto;opacity:.8;text-align:right;width:100%}.badge-prof{position:relative}.badge-prof:after{content:attr(data-acc);font-size:.875rem;top:1.5rem;transition:top .2s ease-in-out;transition:var(--ttop1)}.badge-prof:after,.badge-prof:before{color:var(--accent-8);height:100%;position:absolute;right:0;width:100%;z-index:1}.badge-prof:before{content:attr(data-bef);font-size:.75rem;opacity:1;top:3rem}.badge-footer{align-items:center;color:var(--accent-8);display:flex;font-weight:500;height:1.75rem;letter-spacing:-.5px;width:100%}.badge-footer img{fill:none;filter:invert(1);height:1rem;margin-left:.25rem;margin-right:.5rem;width:1rem}.badge-footer span{padding:.25rem .5rem;vertical-align:middle}.cm-right--bottom{display:flex;flex-direction:column;height:100%;justify-content:flex-end;width:100%}.contact-menu__body .cm-right{overflow:hidden}.cm-right--bottom__body{display:flex;flex-direction:column;height:100%}.cm-right--bottom__cell{align-items:center;border-top:1px solid var(--offsetwhite1);display:flex;font-weight:500;height:100%;justify-content:space-between;min-height:4rem;padding:2px .5rem;width:100%}.cm-right--bottom__cell span{transform:scaleY(.95)}.cm-right--bottom__cell-icons{align-items:center;display:flex;height:100%;justify-content:flex-end}.cm-copy,.cm-email-goto{align-items:center;border:1px solid var(--offsetwhite1);display:flex;height:2.25rem;justify-content:center;width:2.5rem}.cm-copy{margin-left:.5rem}.cm-copy img,.cm-email-goto img{height:1.375rem;width:1.375rem}.cm-right--top__cell:hover{background:var(--grey4)}.cm-copy:hover,.cm-email-goto:hover,.cm-right--top__cell:hover{transition:background .15s cubic-bezier(.4,0,.2,1);transition:var(--tbg1)}.cm-copy:hover,.cm-email-goto:hover{background:var(--offsetwhite1)}@media screen and (max-height:600px){.contact-menu__header{height:8rem!important;min-height:8rem!important}.contact-menu__header .cm-right{height:120px!important}.contact-menu__header .cm-right--bottom__cell{height:4rem!important}.contact-menu__header .cm-right--top{display:none!important}}@media screen and (max-width:768px){.contact-menu__body{grid-template-columns:1fr;grid-template-rows:25% 1fr;padding:.25rem}.cm-left{border:none;display:flex;flex-wrap:wrap;padding:6px 2px 2rem}.cm-left__header{height:20%;width:100%}.cm-left__header h3{padding:0}.cm-left__header span{padding:2px}.cm-left__body,.cm-left__footer{height:80%;text-align:right;width:50%}.cm-left__footer-relocate{justify-content:flex-end}}@media screen and (max-width:720px){.contact-menu__header{display:none}}@media screen and (max-width:640px){.contact-container{padding-left:.25rem;padding-right:.25rem}.cm-right--top__cell-badge{padding:.5rem}}@media screen and (max-width:490px){.cm-right--top__cell{opacity:1}.badge-prof{color:var(--white1)!important}.badge-prof:after,.badge-prof:before{transform:translateY(1.5rem)}}.contact-form--container{background-clip:content-box,border-box;background-color:var(--grey3);background-image:linear-gradient(var(--grey3),var(--grey3)),linear-gradient(200deg,#013948 0,#0089ae 20%,rgba(121,40,202,0) 80%);background-image:linear-gradient(var(--grey3),var(--grey3)),linear-gradient(200deg,var(--primary3) 0,var(--primary1) 20%,rgba(121,40,202,0) 80%);background-origin:border-box;background-position:0 0,0 0;background-repeat:no-repeat;background-size:100% 100%,100% 100%;padding:.125rem;position:relative;width:100%;z-index:400}.disable-form{pointer-events:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.disable-contact-form{display:none}.contact-form--container .section-title{padding-top:4rem}.contact-form--container .section-title h3{-webkit-text-stroke:0;text-wrap:balance;background-clip:border-box;background-clip:initial;color:var(--white2);font-size:23px!important;line-height:1.5;text-align:center!important;width:100%}.contact-form--wrapper{display:flex;flex-direction:column;height:100%;margin:0 auto;max-width:1200px;width:100%}.contact-form{grid-row-gap:2rem;border:1px solid transparent;border-radius:20px;box-shadow:inset 0 1px 1px -1px #3b3b3b;display:grid;grid-template-columns:1fr;margin:0 auto;max-width:560px;overflow:hidden;position:relative;row-gap:2rem;width:100%}.success-message{align-items:center;background:var(--offsetblack1);color:var(--white1);display:flex;font-size:.875rem;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:9999}.success-message span{animation:c 1.5s infinite}.form-group{padding:0 2rem}.form-group label,.form-group p{color:var(--white2);display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.contact-form .form-group:first-child{padding-top:2rem}.contact-form .form-group:last-child{padding-bottom:2rem}.contact-method-group{align-items:center;border-radius:5px;border-radius:var(--br-1);display:flex;margin-bottom:1rem;padding:4px;width:10rem}.contact-method-group span{height:1.75rem;position:relative;width:5rem}.contact-method-group span label{background:0 0;border:1px solid transparent;border-radius:5px;border-radius:var(--br-1);color:var(--white1);cursor:pointer;font-weight:400;height:100%;line-height:1.75rem;text-align:center;width:100%}.contact-method-group span input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;height:100%;margin:0;opacity:0;outline:0;padding:0;position:absolute;width:100%;z-index:-1}.contact-method-group span input:checked+label{background:var(--black4);border:1px solid #025b74;border:1px solid var(--primary2);color:var(--white1);opacity:1}.form-group--submit{display:flex;justify-content:flex-end}.submit-form--btn{background:0 0;border:1px solid var(--black2);border-radius:5px;border-radius:var(--br-1);color:var(--white2);cursor:not-allowed;font-size:.875rem;padding:.5rem 2rem;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn-allow{background:var(--black0);border:1px solid #025b74;border:1px solid var(--primary2);color:var(--white1);cursor:pointer;pointer-events:all;transition:background .15s cubic-bezier(.4,0,.2,1);transition:var(--tbg1);-webkit-user-select:all;-moz-user-select:all;user-select:all}.invalid{border:1px solid #cf007a;border:1px solid var(--red1)}.contact-method-group span label:hover{opacity:.7;transition:var(topac1)}.btn-allow:hover{background:var(--grey2)}@media screen and (max-width:720px){.contact-form--container .section-title h3{font-size:4vw!important}}.toast-wrapper{bottom:0;left:0;margin:0 auto;max-width:90vw;position:fixed;right:0;width:100%;z-index:9999}.toast{align-items:center;border-radius:8px;bottom:2rem;box-shadow:var(--bs-md);display:flex;height:64px;overflow:hidden;position:absolute;right:2rem;transition:all .35s cubic-bezier(.25,.75,.6,.98);transition:var(--ttoast1);width:min(420px,70vw)}[data-toast-type=success]{background:#0089ae!important;background:var(--primary1)!important;color:#fff!important}[data-toast-type=error]{background:#d63437!important;color:#fff!important}[data-toast-type=default]{background:var(--black1)!important;color:var(--white1)!important}[data-toast-type=error] .toast-progress--length,[data-toast-type=success] .toast-progress--length{background:rgba(0,0,0,.3)!important}[data-toast-type=error] .toast-close,[data-toast-type=success] .toast-close{color:#fff!important}[data-toast-type=error] .toast-close:hover,[data-toast-type=success] .toast-close:hover{background:hsla(0,0%,100%,.1)!important}[data-toast-type=error] .toast-progress,[data-toast-type=success] .toast-progress{background:hsla(0,0%,100%,.6)!important}[data-toast-type=default] .toast-progress--length{background:hsla(0,0%,100%,.3)!important}[data-toast-type=default] .toast-progress{background:var(--white1)!important}.toast-progress{height:6px;top:1px;z-index:2}.toast-progress,.toast-progress--length{border-radius:2px;left:0;position:absolute;width:100%}.toast-progress--length{background:0 0;height:4px;top:0;z-index:1}.toast-body{height:100%;justify-content:space-between;padding:1rem;width:100%}.toast-body,.toast-close{align-items:center;display:flex}.toast-close{background:0 0;border:0;border-radius:4px;cursor:pointer;font-size:1.25rem;font-weight:400;height:32px;justify-content:center;margin:0;padding:0;position:relative;width:32px;z-index:3}.toast-close:hover{background:var(--offsetblack2)!important}.toast-message{font-size:max(1rem,16px);font-size:var(--fs6);font-weight:400}.toast--2{opacity:.95;transform:scaleX(.95)}.toast--3{opacity:.8;transform:scaleX(.85)}.toast--4{opacity:.65;transform:scaleX(.75)}.hide-toast{opacity:0}@media screen and (max-width:720px){.toast{height:50px;left:0;margin:0 auto;right:0;width:min(70vw,380px)}}.lighthouse-modal--wrapper{align-items:center;animation:a .1s both;background:rgba(0,0,0,.6);display:flex;height:100%;justify-content:center;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:9999}.hide-lh-modal{display:none}.lighthouse-modal{background:var(--black1);border:1px solid var(--black2);border-radius:5px;border-radius:var(--br-1);display:flex;flex-direction:column;height:auto;max-height:80vh;max-width:900px;overflow:hidden;width:90%}.lighthouse-modal__header{align-items:center;background:var(--black1);display:flex;justify-content:space-between;min-height:5rem;padding:1rem}.lh-appname{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(90deg,var(--white1) 0,var(--accent-7) 80%);background-size:100% 200%;color:transparent;font-size:1.125rem;font-weight:500;letter-spacing:-.5px;text-transform:uppercase;transform:scaleY(.88)}.close-lh-btn{align-items:center;background:var(--black1);border:1px solid var(--accent-2);border-radius:5px;border-radius:var(--br-1);color:var(--accent-7);cursor:pointer;display:flex;font-size:1rem;font-weight:400;height:2rem;justify-content:center;margin:0;padding:0;transform:scaleX(115%);width:2rem}.close-lh-btn:hover{background:var(--accent-1)}.lighthouse-modal__body{display:grid;grid-template-areas:"a b b" "a b b";grid-template-columns:1fr auto auto;height:calc(100% - 4rem);overflow-y:auto;width:100%}.lh-main{align-items:center;background:linear-gradient(180deg,var(--black0) 40%,var(--black1));box-shadow:0 0 0 1px var(--black2);display:flex;filter:drop-shadow(0 8px 30px rgba(0,0,0,.12));flex-direction:column;grid-area:a;justify-content:center;max-width:320px;min-width:200px;position:relative;width:100%;z-index:2}.lh-main:before{background:var(--black0);border-right:1px solid var(--black2);border-top:1px solid var(--black2);border-top-right-radius:2px;content:"";height:14px;left:100%;position:absolute;transform:translateX(-45%) rotate(45deg);width:14px}.lh-main__score{align-items:center;background:#16cf6b;border-radius:50%;border-radius:var(--br-half);color:#fff;display:flex;flex-direction:column;font-size:1.75rem;font-weight:700;height:8rem;justify-content:center;padding:10px 5px;position:relative;width:8rem}.lh-main__score:after{border:8px solid #fff;border-radius:50%;border-radius:var(--br-half);bottom:0;content:"";height:90%;left:0;margin:auto;position:absolute;right:0;top:0;width:90%}.lh-main__score-title{background:linear-gradient(to right bottom,var(--black4),var(--black0),var(--accent-1));border:1px solid var(--black3);border-radius:5px;border-radius:var(--br-1);color:var(--white0);font-size:.875rem;font-weight:500;height:2.5rem;line-height:2.5rem;margin:1.5rem 0;overflow:hidden;padding:0 1.5rem;position:relative}.lh-main__score-title:hover{background:var(--black2)}.lh-main__score-subtitle{color:var(--white1);font-size:.875rem;font-weight:400;line-height:1.4;opacity:.8;padding:0 .5rem}.lh-sub{border:none;display:flex;flex-direction:column;padding:1.5rem;position:relative;text-align:left;width:100%}.lh-sub:nth-child(-n+3){border-bottom:1px solid var(--black2)}.lh-sub:nth-child(2n){border-right:1px solid var(--black2)}.lh-sub-title{color:var(--white1);font-size:1rem;font-weight:500;width:100%}.lh-sub__metrics{align-items:center;display:flex;height:2.5rem;justify-content:space-between;margin-top:10px;width:100%}.lh-sub__metrics-title{color:#1aad5f;font-size:1.375rem;font-weight:700;margin-top:.75rem}.lh-sub__metrics-sm{color:var(--white1);font-size:.875rem;font-weight:500;margin-left:6px;opacity:.8}.lh-sub__metrics-score{align-items:center;border:2px solid #16cf6b;border-radius:50%;border-radius:var(--br-half);color:var(--white2);display:flex;font-size:.875rem;height:2.25rem;justify-content:center;width:2.25rem}.lh-sub hr{background:var(--black2);border:none;height:1px;margin:1.25rem 0;width:100%}.lh-sub-subtitle{color:var(--white1);font-size:.95rem;font-weight:500;line-height:1.4;opacity:.8}@media screen and (max-width:768px){.lighthouse-modal{height:100%}.lighthouse-modal__body{display:grid;grid-template-areas:"a" "b" "b" "b";grid-template-columns:1fr;width:100%}.lh-main{max-width:100%;width:100%}.lh-main:before{background:var(--black1);left:auto;top:100%;transform:translateY(-45%) rotate(135deg)}.lh-sub,.lh-sub:nth-child(-n+3),.lh-sub:nth-child(2n){border-bottom:1px solid var(--black3)}.lh-sub{height:200px;max-width:100%}}@media screen and (max-width:490px){.lighthouse-modal{width:100%}}.spinner-wrapper{align-items:center;display:flex;height:4rem;justify-content:center;width:4rem}.spinner{height:100%;position:relative;transform:translate(2rem,2rem);width:100%}.spinner-cell{animation:d 1.2s linear infinite;background:var(--accent-6);border-radius:5px;border-radius:var(--br-1);height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.project-overview--wrapper{align-items:center;animation:a .1s both;background:rgba(0,0,0,.4);display:flex;height:100%;justify-content:center;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:9999}.project-overview--modal{background:var(--black4);display:flex;flex-direction:column;height:90%;max-height:1200px;max-width:900px;overflow:hidden;width:90%}.hide-po{display:none}.po-header{align-items:center;background:linear-gradient(210deg,rgba(50,145,255,.05),var(--black4));border-bottom:1px solid rgba(50,145,255,.15);display:flex;height:4rem;justify-content:space-between;padding:1rem}.po-header--title{line-height:.8}.po-header--title h3{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(90deg,var(--white1) 0,var(--accent-7) 80%);background-size:100% 200%;color:transparent;font-size:1.125rem;font-weight:500;letter-spacing:-.5px;text-transform:uppercase;transform:scaleY(.92)}.po-header--title span{color:var(--white2);font-size:.875rem}.po-header--close{align-items:center;background:var(--black1);border:1px solid var(--accent-2);border-radius:5px;border-radius:var(--br-1);color:var(--accent-7);cursor:pointer;display:flex;font-size:1.125rem;height:2.25rem;justify-content:center;margin:0;padding:0;transform:scaleX(115%);width:2.25rem}.po-header--close:hover{background:var(--accent-1)}.po-body{background:linear-gradient(to bottom,var(--black0),var(--black4) 50%);display:flex;flex-direction:column;overflow-y:scroll;padding:2rem 1rem 1rem}.po-body hr{border-bottom:1px solid var(--black2);border-top:1px solid var(--black2);height:1px;margin:.5rem 0;width:100%}.po-title{align-items:center;display:flex;font-size:1.125rem;font-weight:700;height:3.5rem;margin-top:2rem;padding-left:1rem;text-transform:uppercase}.po-title:first-child{margin-top:0}.po-horiz{height:2rem;margin:1rem 0;width:100%}.proj-overview--links{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start;margin:1rem 0 4rem;padding:0 .5rem;width:100%}.proj-overview--links a{background:linear-gradient(to right bottom,var(--black4),var(--black0),var(--accent-1));border:1px solid var(--black3);border-radius:5px;border-radius:var(--br-1);color:var(--white0);font-size:.875rem;font-weight:500;height:2.5rem;line-height:2.5rem;margin:.25rem;overflow:hidden;padding:0 2rem;position:relative;text-transform:capitalize}.proj-overview--links a:hover{background:linear-gradient(to right bottom,var(--black2),var(--black1),var(--accent-1));border:1px solid var(--white1);color:var(--white1)}.po-list{display:flex;flex-direction:column;list-style-type:circle;margin:1rem 0}.po-list--item{align-items:center;display:flex;line-height:1.25;list-style:circle;margin:.5rem 0;opacity:.9;padding-left:1rem;position:relative}.po-list--item:before{content:"- ";left:0;position:absolute;top:0}.floating-menu{height:auto;margin:1rem auto 3rem;max-width:1140px;max-width:var(--max-width-md);padding:1rem 0;width:100%;z-index:1000;z-index:var(--z-modal)}[data-floating-menu-loaded=false] *{color:transparent}.floating-menu--fixed{position:fixed;top:4rem;top:var(--header-height)}.float-options{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:0 auto;min-height:80px;width:100%}.float-options,.float-options li{align-items:center;position:relative}.float-options li{background:0 0;display:flex;height:auto;min-height:70px;padding:0 .25rem}.float-options li a{align-items:flex-start;color:var(--white1);cursor:pointer;display:flex;flex-direction:column;font-size:1rem;font-weight:500;justify-content:center;line-height:1.2;padding:.5rem;transition:background .15s ease;width:100%}.float-options li a span:first-child:before{content:attr(data-proj-title-index);font-weight:400;left:0;letter-spacing:-.05em;line-height:1.2;opacity:.7;position:absolute;transform:scale(.8)}.float-options li a span:last-child{font-size:80%;font-weight:400;margin-top:.25rem;opacity:.85;text-transform:uppercase;transform:scaleY(.9)}.float-options li:hover{background:var(--black1);text-shadow:1px 1px 12px var(--offsetsecondary2);transition-duration:.15s;transition-property:background,border,text-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.popup-picture{background:var(--offsetblack0);bottom:0;display:flex;flex-direction:column;height:100vh;left:0;margin:auto;overflow:hidden;position:fixed;right:0;top:0}.popup-picture__header{height:4rem;height:var(--header-height);overflow:hidden;width:100%}.popup-picture__header-content{align-items:flex-end;background:var(--offsetblack0);display:flex;height:100%;justify-content:center;margin:0 auto;overflow:hidden;width:100%}.popup-picture__info{color:var(--white1);font-size:1.125rem;font-weight:400;text-align:center;width:100%}.popup-picture__close{border:1px solid var(--white2);cursor:pointer;font-size:1.25rem;height:2.5rem;width:5rem}.popup-picture__close:hover{background:var(--accent-3)}.popup-picture__imgwrapper{align-items:center;display:flex;height:calc(100vh - 4rem);height:calc(100vh - var(--header-height));justify-content:center;margin:0 auto;overflow:hidden;padding:1rem;position:relative;width:100%}.popup-picture img{filter:contrast(1.1) grayscale(10%);height:100%;image-rendering:-o-crisp-edges;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center;position:relative}.popup-picture img:before{border:1px solid var(--black2);content:"";height:100%;left:0;position:absolute;top:0;width:100%}.tooltip{text-wrap:balance;align-items:center;height:35px;max-width:220px;opacity:0;transition-duration:.2s;transition-property:opacity;transition-timing-function:cubic-bezier(.25,.75,.6,.98);transition-timing-function:var(--bez-4);width:220px;z-index:9999}.tooltip,.tooltip-caret{display:flex;justify-content:center;position:absolute}.tooltip-caret{align-items:flex-end;height:20px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:20px;z-index:1}.tooltip-caret img{height:100%;width:100%}.tooltip-content{align-items:center;background:#101112;border:1px solid #202124;border-radius:5px;border-radius:var(--br-1);color:#fff;display:flex;font-size:.85rem;font-weight:400!important;height:100%;justify-content:center;line-height:1;margin:0 auto;padding:.5rem;position:relative;width:auto;z-index:2}[data-tooltip-active=false]{left:0;top:0;visibility:hidden}[data-tooltip-active=true]{opacity:1;visibility:visible}.footer{background:var(--black0);flex-direction:column;height:240px;justify-content:center;margin:0 auto;max-width:1200px;overflow:hidden;position:relative;width:100%;z-index:500}.footer,.footer-links{align-items:center;display:flex}.footer-links{flex-wrap:wrap;height:8rem;justify-content:space-evenly;margin-top:2rem}.footer a{color:var(--accent-7);font-size:.875rem;font-weight:700;height:3rem;letter-spacing:.03em;line-height:3rem;margin:0 .25rem;padding:0 1rem;position:relative;text-transform:uppercase;transform:scale(.9,.8)}.footer a:after{background:0 0;bottom:0;content:"";height:2px;left:0;margin:0 auto;position:absolute;right:0;width:80%}.footer a:hover{background:var(--black4)}.footer a:hover:after{background:var(--accent-7);transition:background .35s cubic-bezier(.25,.75,.6,.98);transition:background .35s var(--bez-3)}.ascii-wrapper{align-items:center;color:var(--accent-7);display:flex;font-family:monospace;font-size:10px;font-weight:700;height:-moz-fit-content;height:fit-content;justify-content:center;padding-top:2rem;pointer-events:none;transform:scale(.95) translateY(-10%);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:pre;width:100%}@media screen and (max-width:490px){.ascii-wrapper{transform:scale(.65)}} \ No newline at end of file