:root{--bgColor: hsl(0, 0%, 0%);--cardColor: hsl(0, 0%, 1%);--highColor: hsl(0, 0%, 10%);--firstText: hsl(0, 0%, 95%);--secText: hsl(0, 0%, 70%);--accentColor: hsl(306, 57%, 61%);--accentColor2: hsl(198, 77%, 65%);--headTitleSize: 2.5rem;--titleSize: 5rem;--subTitleSize: 1.75rem;--aSize: 1.5rem;--pSize: 1.25rem}@font-face{font-family:Madina;src:url(/Madina.otf)}@media screen and (max-width:1024px){:root{--titleSize: 3rem}}@media screen and (max-width:768px){:root{--titleSize: 2rem;--subTitleSize: 1.25rem;--pSize: 1rem;--headTitleSize: 1.5rem;--aSize: 1rem}}*{padding:0;margin:0;font-family:Karla,Arial,Helvetica,sans-serif;font-weight:400;scrollbar-color:var(--cardColor) var(--bgColor)}html{color:var(--firstText);overflow-x:hidden;overflow-y:auto}body{background-color:var(--bgColor)}body:before,body:after{content:"";position:fixed;inset:-20%;z-index:-1;pointer-events:none}body:before{background:radial-gradient(36rem 36rem at 22% 28%,hsla(306,57%,61%,.1),transparent 60%),radial-gradient(40rem 40rem at 80% 72%,hsla(198,77%,65%,.09),transparent 62%);animation:bgDrift1 26s ease-in-out infinite alternate}body:after{background:radial-gradient(32rem 32rem at 72% 20%,hsla(198,77%,65%,.07),transparent 60%),radial-gradient(34rem 34rem at 24% 82%,hsla(306,57%,61%,.08),transparent 62%);animation:bgDrift2 34s ease-in-out infinite alternate}@keyframes bgDrift1{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(4%,-3%,0) scale(1.08)}}@keyframes bgDrift2{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(-3%,4%,0) scale(1.06)}}#root{display:flex;flex-direction:column;min-height:100vh}main{box-sizing:border-box;flex:1 0 auto;width:100%;max-width:1400px;margin:8rem auto 0;padding-inline:clamp(1.25rem,4vw,2rem)}main h1{text-align:center;text-transform:uppercase;letter-spacing:.22em;text-indent:.22em;font-weight:700}header{box-sizing:border-box;position:fixed;top:1rem;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;width:min(90%,1320px);height:4rem;padding:0 1.75rem;background:linear-gradient(120deg,#d463c917,#61c1ea17),#0a0a0a99;backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);border-radius:14px;box-shadow:0 14px 40px -22px #000000f2,0 6px 26px -18px #d463c959,inset 0 1px #ffffff0f;z-index:10;animation:headerDrop .55s ease-out both}header h1,header .navToggle,header nav,header ol{position:relative;z-index:1}header:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(90deg,var(--accentColor),var(--accentColor2),var(--accentColor));background-size:200% 100%;animation:borderFlow 10s linear infinite;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}.headerFx{position:absolute;inset:0;z-index:0;border-radius:inherit;overflow:hidden;pointer-events:none}.headerRipple{position:absolute;width:18rem;height:18rem;border-radius:50%;background:radial-gradient(circle,hsla(306,57%,61%,.5),hsla(198,77%,65%,.22) 45%,transparent 70%);transform:translate(-50%,-50%) scale(0);opacity:.9;animation:rippleBurst .65s ease-out forwards}@keyframes rippleBurst{to{transform:translate(-50%,-50%) scale(1);opacity:0}}@keyframes borderFlow{0%{background-position:0% 50%}to{background-position:200% 50%}}@keyframes headerDrop{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}header h1{font-size:1.9rem}header h1 span{font-size:1em}.headerLogo a{display:inline-block;padding:.2rem .35rem;margin:-.2rem -.35rem;border-radius:8px;color:var(--firstText);font-size:inherit;font-weight:inherit;text-decoration:none;transition:text-shadow .3s ease}.headerLogo a:hover{color:var(--firstText);font-weight:inherit;text-shadow:0 0 22px hsla(306,57%,61%,.4)}.headerLogoDot{display:inline-block;color:var(--accentColor);transition:color .3s ease,transform .3s ease}.headerLogo a:hover .headerLogoDot{color:var(--accentColor2);transform:scale(1.4)}header ul{display:flex;gap:2rem;list-style:none;align-items:center}header ol{display:flex;gap:.5rem;list-style:none;align-items:center}hr{margin-bottom:2rem;margin-top:2rem}.siteFooter{box-sizing:border-box;width:100%;max-width:1200px;margin:clamp(6rem,14vw,14rem) auto 0;padding:2.5rem clamp(1.25rem,4vw,2rem) 1.75rem;border-top:1px solid var(--highColor)}.footerInner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2.5rem 4rem;margin-bottom:2.5rem}.footerBrand{display:flex;flex-direction:column;gap:1rem;max-width:26rem}.footerLogo{font-size:var(--headTitleSize);line-height:1;color:var(--firstText);text-decoration:none;width:fit-content}.footerLogo span{color:var(--accentColor)}.footerLogo:hover{color:var(--firstText);font-weight:400;transform:none}.footerTagline{color:var(--secText);font-size:1rem;font-weight:200;line-height:1.6}.footerSocials{list-style:none;display:flex;gap:.75rem;margin-top:.25rem}.footerSocials a{display:grid;place-items:center;width:2.75rem;height:2.75rem;border:1px solid var(--highColor);border-radius:50%;transition:border-color .25s ease,transform .25s ease}.footerSocials a:hover{border-color:var(--accentColor);transform:translateY(-3px)}.footerSocials svg{width:1.35rem;height:1.35rem}.footerNav{display:flex;flex-direction:column;gap:1.1rem}.footerNavLabel{font-family:JetBrains Mono,ui-monospace,monospace;color:var(--accentColor2);font-size:.8rem}.footerNav ul{list-style:none;display:grid;grid-template-columns:repeat(2,auto);gap:.7rem 3rem}.footerNav a{width:fit-content;color:var(--secText);text-decoration:none;font-size:1rem;transition:color .2s ease}.footerNav a:hover{color:var(--accentColor);font-weight:400;transform:none}.footerBottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding-top:1.5rem;border-top:1px solid var(--highColor)}.footerBottom p{color:var(--secText);font-size:.85rem}.footerColophon{font-family:JetBrains Mono,ui-monospace,monospace}@media screen and (max-width:768px){.siteFooter{padding:2rem 1.25rem 1.5rem}.footerInner{flex-direction:column;gap:2rem}.footerBottom{flex-direction:column;align-items:flex-start;gap:.75rem}}a svg{fill:var(--firstText)}svg{height:2rem;width:2rem}a svg:hover{fill:var(--accentColor)}header svg{transition:fill .25s ease}header a{padding:.5rem 1rem;border-radius:.5rem;color:var(--firstText);text-decoration:none;font-size:var(--aSize);transition:.2s;display:inline-block;font-weight:200}h1 span{font-size:2rem;font-weight:700}a:hover{color:var(--accentColor);transform:scale(1);font-weight:600}button{background-color:var(--highColor);padding:.5rem 1rem;color:var(--firstText);border:none;border-radius:.5rem;cursor:pointer;font-size:1.75rem;width:9rem}button:hover{transform:scale(1.1);box-shadow:1px 2px 1px var(--accentColor);transition:.2s}span{color:var(--accentColor);font-weight:200}.navLink{position:relative;transform:none;padding:.35rem .65rem;color:var(--secText);font-size:1.15rem;font-weight:400;transition:color .25s ease}.navLink:after{content:"";position:absolute;left:.65rem;right:.65rem;bottom:.05rem;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accentColor),var(--accentColor2));transform:scaleX(0);transform-origin:left;transition:transform .32s cubic-bezier(.22,1,.36,1)}.navLink:hover{transform:none;color:var(--firstText);font-weight:400}.navLink:hover:after{transform:scaleX(1)}.navLink.inPage{color:var(--firstText);font-size:1.15rem;font-weight:400;text-decoration:none;cursor:default}.navLink.inPage:after{transform:scaleX(1);transform-origin:left;animation:navUnderline .45s cubic-bezier(.22,1,.36,1)}.navLink.inPage:hover{transform:none}@keyframes navUnderline{0%{transform:scaleX(0)}to{transform:scaleX(1)}}header ol a{display:grid;place-items:center;width:2.5rem;height:2.5rem;padding:0;border-radius:.6rem;transition:transform .2s ease}header ol a:hover{transform:translateY(-2px)}header ol svg{display:block;width:1.45rem;height:1.45rem}.navGroup{display:contents}.navToggle{display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:2.75rem;height:2.75rem;padding:0;background:transparent;border:1px solid var(--highColor);border-radius:10px;cursor:pointer;transition:border-color .2s ease}.navToggle:hover{transform:none;box-shadow:none;border-color:var(--accentColor)}.navToggleBar{display:block;width:1.35rem;height:2px;border-radius:2px;background:var(--firstText);transition:transform .28s ease,opacity .2s ease}header.open .navToggleBar:nth-child(1){transform:translateY(7px) rotate(45deg)}header.open .navToggleBar:nth-child(2){opacity:0}header.open .navToggleBar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media screen and (max-width:860px){header{height:3.6rem;padding:0 .6rem 0 1.25rem;gap:.75rem}header h1{font-size:1.6rem}.navToggle{display:flex}.navGroup{display:flex;position:absolute;top:calc(100% + .6rem);left:0;right:0;z-index:1;flex-direction:column;gap:.75rem;padding:1rem;border-radius:14px;background:linear-gradient(120deg,#d463c91a,#61c1ea1a),#0a0a0aeb;backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);box-shadow:0 24px 50px -24px #000000f2,0 8px 26px -18px #d463c966;opacity:0;visibility:hidden;transform:translateY(-10px);pointer-events:none;transition:opacity .25s ease,transform .25s ease,visibility .25s ease}.navGroup:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(120deg,#d463c999,#61c1ea80 55%,#ffffff0f);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}header.open .navGroup{opacity:1;visibility:visible;transform:none;pointer-events:auto}.navGroup nav{width:100%}.navGroup nav ul{flex-direction:column;align-items:stretch;gap:.25rem}.navLink{display:block;padding:.85rem 1rem;font-size:1.05rem;border-radius:10px}.navLink:after{display:none}.navLink:hover{background:color-mix(in srgb,var(--firstText) 6%,transparent)}.navLink.inPage{background:color-mix(in srgb,var(--accentColor) 14%,transparent)}.navGroup ol{justify-content:center;gap:1rem;padding-top:.85rem;margin-top:.25rem;border-top:1px solid var(--highColor)}main{margin-top:6rem}}.color2{color:var(--accentColor2);font-size:var(--subTitleSize)}#homeMain{position:relative;text-align:start}.homeHero{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:clamp(2rem,5vw,5rem);min-height:calc(100svh - 16rem)}.homeIntro{display:flex;flex-direction:column;align-items:flex-start}.homeStatus{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1.6rem;padding:.4rem .9rem;border:1px solid var(--highColor);border-radius:999px;background:color-mix(in srgb,var(--accentColor2) 8%,transparent);font-family:JetBrains Mono,ui-monospace,monospace;font-size:.8rem;font-weight:400;color:var(--secText)}.homeStatusDot{width:.55rem;height:.55rem;border-radius:50%;background:var(--accentColor2);box-shadow:0 0 #61c1ea8c;animation:statusPulse 2.4s ease-out infinite}@keyframes statusPulse{0%{box-shadow:0 0 #61c1ea80}70%{box-shadow:0 0 0 .5rem #61c1ea00}to{box-shadow:0 0 #61c1ea00}}.homeRole{font-size:var(--subTitleSize);font-weight:200;color:var(--firstText)}.homeRole span{font-weight:700;background:linear-gradient(90deg,var(--accentColor),var(--accentColor2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}#homeMain h1{font-size:var(--titleSize);line-height:1.02;margin:.4rem 0 1.4rem;text-align:start;text-transform:none;letter-spacing:-.015em;text-indent:0;font-weight:700}.homeBio{max-width:48ch;color:var(--secText);font-size:var(--pSize);font-weight:200;line-height:1.7}.homeCtas{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.2rem}.btnPrimary,.btnGhost{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.6rem;border-radius:10px;font-size:1rem;font-weight:600;text-decoration:none;transition:transform .2s ease,box-shadow .25s ease,border-color .2s ease}.btnPrimary{color:var(--bgColor);background:linear-gradient(90deg,var(--accentColor),var(--accentColor2))}.btnPrimary:hover{color:var(--bgColor);font-weight:600;transform:translateY(-3px);box-shadow:0 16px 30px -12px #d463c9a6}.btnArrow{color:inherit;font-weight:600;transition:transform .2s ease}.btnPrimary:hover .btnArrow{transform:translate(4px)}.btnGhost{color:var(--firstText);background:transparent;border:1px solid var(--highColor)}.btnGhost:hover{color:var(--firstText);font-weight:600;transform:translateY(-3px);border-color:var(--accentColor);box-shadow:0 16px 30px -16px #61c1ea80}.homePortrait{position:relative;z-index:1;isolation:isolate;justify-self:center;width:min(100%,21rem);aspect-ratio:1}.homePortrait img{box-sizing:border-box;position:relative;z-index:1;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:50%;border:1px solid var(--highColor)}.homePortrait:before{content:"";position:absolute;inset:-.55rem;z-index:2;border-radius:50%;padding:2px;background:conic-gradient(from var(--borderAngle, 0deg),var(--accentColor),var(--accentColor2),var(--accentColor));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;animation:borderRotate 8s linear infinite}.homePortrait:after{content:"";position:absolute;inset:-1.5rem;z-index:0;border-radius:50%;background:radial-gradient(circle at 50% 50%,hsla(306,57%,61%,.25),transparent 65%);filter:blur(6px)}@media screen and (max-width:900px){.homeHero{grid-template-columns:1fr;justify-items:center;text-align:center;gap:2.5rem;margin-top:2rem;min-height:0}.homeIntro{align-items:center}.homeBio{max-width:58ch}.homeCtas{justify-content:center}.homePortrait{order:-1;width:min(62%,15rem)}}@media(prefers-reduced-motion:reduce){header,header:after,body:before,body:after,.homeStatusDot,.homePortrait:before,.nfDot,.reveal{animation:none}header{transition:none}.navLink:after,.navLink.inPage:after{transition:none;animation:none}}#notFoundMain{position:relative;display:grid;place-items:center;min-height:calc(100svh - 16rem);padding:0 1.5rem}.nfGlow{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(40% 50% at 30% 35%,hsla(306,57%,61%,.14),transparent 70%),radial-gradient(40% 50% at 70% 62%,hsla(198,77%,65%,.12),transparent 70%);filter:blur(12px)}.nfTrace{position:relative;z-index:1;width:min(100%,36rem);padding:clamp(1.75rem,4vw,2.75rem);border-radius:16px;background:linear-gradient(120deg,#d463c912,#61c1ea12),#0a0a0a9e;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:0 24px 60px -30px #000000f2,0 8px 30px -20px #d463c959}.nfTrace:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(120deg,#d463c999,#61c1ea80 55%,#ffffff0f);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}.nfEyebrow{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1.75rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem;letter-spacing:.04em;color:var(--secText)}.nfDot{width:.55rem;height:.55rem;border-radius:50%;background:var(--accentColor);box-shadow:0 0 #d463c98c;animation:nfPulse 2.6s ease-out infinite}@keyframes nfPulse{0%{box-shadow:0 0 #d463c980}70%{box-shadow:0 0 0 .5rem #d463c900}to{box-shadow:0 0 #d463c900}}.nfLog{margin-bottom:1.85rem;font-family:JetBrains Mono,ui-monospace,monospace}.nfLogLine{display:flex;align-items:baseline;gap:.6rem;font-size:.95rem;color:var(--secText)}.nfMethod{flex:none;color:var(--accentColor2);font-weight:700}.nfPath{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--firstText)}.nfLogStatus{flex-wrap:wrap;gap:.35rem .85rem;margin-top:.6rem}.nfArrow{font-size:1.4rem;color:var(--secText)}.nfCode{font-size:clamp(2.75rem,9vw,3.75rem);font-weight:700;line-height:1;letter-spacing:-.01em;background:linear-gradient(90deg,var(--accentColor),var(--accentColor2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.nfStatusText{font-size:.9rem;text-transform:uppercase;letter-spacing:.14em;color:var(--secText)}#notFoundMain .nfTitle{margin:0 0 .9rem;font-size:clamp(1.5rem,4vw,2.1rem);font-weight:700;line-height:1.15;letter-spacing:-.01em;text-align:left;text-indent:0;text-transform:none;color:var(--firstText)}.nfBody{max-width:44ch;margin-bottom:2rem;color:var(--secText);font-size:var(--pSize);font-weight:200;line-height:1.7}.nfCtas{display:flex;flex-wrap:wrap;gap:1rem}#aboutMain{max-width:1200px;padding:0 1.5rem}.aboutBio{display:flex;flex-direction:column;gap:1.25rem;max-width:1000px;margin:0 auto 4rem}.aboutBio p{color:var(--secText);font-size:var(--pSize);font-weight:200;line-height:1.8}.aboutBio strong{color:var(--firstText);font-weight:600}.aboutFocus{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.aboutFocusCard{position:relative;display:flex;flex-direction:column;gap:.6rem;padding:1.75rem;background:linear-gradient(120deg,#d463c912,#61c1ea12),var(--cardColor);border-radius:16px;box-shadow:0 8px 26px -18px #d463c94d}.aboutFocusCard:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(120deg,#d463c999,#61c1ea80 55%,#ffffff0f);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}.aboutFocusNum{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.85rem;width:fit-content;background:linear-gradient(90deg,var(--accentColor),var(--accentColor2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.aboutFocusCard h3{font-size:1.3rem;font-weight:600;color:var(--firstText)}.aboutFocusCard p{color:var(--secText);font-size:1rem;font-weight:200;line-height:1.65}.aboutFocusCard .aboutFocusTech{margin-top:auto;padding-top:.5rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.82rem;line-height:1.5;color:var(--accentColor2)}@media screen and (max-width:900px){.aboutFocus{grid-template-columns:1fr}}.aboutBlock{margin-top:4rem}.aboutBlockHead{margin-bottom:1.5rem}.aboutBlockEyebrow{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.8rem;color:var(--accentColor2)}.aboutBlockTitle{margin-top:.4rem;font-size:1.6rem;font-weight:700;color:var(--firstText)}.aboutBlockLede{margin-top:.5rem;max-width:60ch;color:var(--secText);font-size:var(--pSize);font-weight:200;line-height:1.7}.homelabGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:1rem}.homelabCard{position:relative;display:flex;align-items:center;gap:1rem;padding:1.1rem 1.25rem;background:linear-gradient(120deg,#d463c912,#61c1ea12),var(--cardColor);border-radius:14px;box-shadow:0 8px 26px -18px #d463c94d}.homelabCard:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(120deg,#d463c999,#61c1ea80 55%,#ffffff0f);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}.homelabIcon{display:grid;place-items:center;flex-shrink:0;width:2.6rem;height:2.6rem;border-radius:10px;color:var(--c, var(--firstText));background:color-mix(in srgb,var(--c, var(--firstText)) 12%,transparent)}.homelabIcon svg{width:1.5rem;height:1.5rem}.homelabBody{flex:1;min-width:0}.homelabName{font-size:1.05rem;font-weight:600;color:var(--firstText)}.homelabRole{margin-top:.15rem;font-size:.9rem;font-weight:200;line-height:1.4;color:var(--secText)}.homelabSince{flex-shrink:0;align-self:flex-start;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.7rem;white-space:nowrap;color:var(--secText)}.setupCard{list-style:none;position:relative;display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(120deg,#d463c912,#61c1ea12),var(--cardColor);border-radius:14px;box-shadow:0 8px 26px -18px #d463c94d}.setupCard:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(120deg,#d463c999,#61c1ea80 55%,#ffffff0f);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}.setupRow{display:flex;align-items:center;gap:.85rem;padding:.9rem 1.1rem;border-top:1px solid var(--highColor)}.setupRow:first-child{border-top:none}.setupIcon{display:grid;place-items:center;flex-shrink:0;width:2.2rem;height:2.2rem;border-radius:8px;color:var(--c, var(--firstText));background:color-mix(in srgb,var(--c, var(--firstText)) 12%,transparent)}.setupIcon svg{width:1.3rem;height:1.3rem}.setupLabel{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem;color:var(--secText)}.setupValue{margin-left:auto;text-align:right;color:var(--firstText);font-size:.95rem}.aboutSetup{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;margin-top:4rem;align-items:start}.aboutSetup .aboutBlock{margin-top:0}.aboutSetup .homelabGrid{grid-template-columns:repeat(2,1fr)}@media screen and (max-width:900px){.aboutSetup{grid-template-columns:1fr;gap:3rem}.aboutSetup .homelabGrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}}.rackList{list-style:none;display:flex;flex-direction:column;gap:1rem}.rackCard{position:relative;display:flex;flex-direction:column;gap:.6rem;padding:1.1rem 1.25rem;background:linear-gradient(120deg,#d463c912,#61c1ea12),var(--cardColor);border-radius:14px;box-shadow:0 8px 26px -18px #d463c94d}.rackCard:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(120deg,#d463c999,#61c1ea80 55%,#ffffff0f);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}.rackCardHead{display:flex;align-items:center;gap:.75rem}.rackIcon{display:grid;place-items:center;flex-shrink:0;width:2.4rem;height:2.4rem;border-radius:9px;color:var(--c, var(--firstText));background:color-mix(in srgb,var(--c, var(--firstText)) 12%,transparent)}.rackIcon svg{width:1.4rem;height:1.4rem}.rackName{font-size:1.02rem;font-weight:600;color:var(--firstText)}.rackKind{margin-left:auto;flex-shrink:0;padding:.15rem .6rem;border-radius:999px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--c, var(--accentColor2));background:color-mix(in srgb,var(--c, var(--firstText)) 12%,transparent)}.rackSpec{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.82rem;line-height:1.5;color:var(--secText)}#projectsMain section{width:100%}#projectsMain ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));justify-content:center;gap:1.5rem}#projectsMain li{display:flex;flex-direction:column;padding:.85rem}.projectCardBody{display:flex;flex-direction:column;flex:1;gap:.75rem;text-align:start;padding:1rem .5rem 0}.projectCardFooter{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:1.25rem}.projectCardIcons{display:flex;align-items:center;gap:.75rem}#projectsMain h3{font-size:1.2rem}#projectsMain .projectCardBody p{color:var(--secText);font-size:.92rem}#projectsMain img{height:10rem;object-fit:contain;padding:2rem 2.5rem .85rem;border-bottom:1px solid color-mix(in srgb,var(--accentColor2) 22%,var(--highColor))}.projectDate{color:var(--secText);font-size:.95rem;white-space:nowrap}.projectCard{position:relative;background:linear-gradient(120deg,#d463c912,#61c1ea12),var(--cardColor);border-radius:15px;box-shadow:0 6px 22px -16px #d463c94d;transition:transform .35s ease,box-shadow .35s ease}.projectCard:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(120deg,#d463c999,#61c1ea80 55%,#ffffff0f);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none;transition:opacity .35s ease;z-index:3}.projectCard:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;background:conic-gradient(from var(--borderAngle, 0deg),var(--accentColor),var(--accentColor2),var(--accentColor));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:0;transition:opacity .35s ease;pointer-events:none;z-index:3}.projectCard:hover{transform:translateY(-8px);box-shadow:0 18px 36px -12px #d463c98c}.projectCard:hover:after{opacity:0}.projectCard:hover:before{opacity:1;animation:borderRotate 3s linear infinite}.projectCardLink{color:var(--firstText);text-decoration:none;transition:color .3s ease}.projectCardLink:after{content:"";position:absolute;inset:0;z-index:1}.projectCard:hover .projectCardLink{background:linear-gradient(90deg,var(--accentColor),var(--accentColor2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.projectGithubLink{position:relative;z-index:2;display:inline-flex;align-items:center}@property --borderAngle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@keyframes borderRotate{to{--borderAngle: 360deg}}#contactMain{max-width:1080px}.contactGrid{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;gap:4rem;margin-top:1rem}.contactAside{display:flex;flex-direction:column;justify-content:center;gap:1.5rem}.contactHeadline{font-size:2.5rem;font-weight:700;line-height:1.12;color:var(--firstText)}.contactHeadline span{font-weight:700;background:linear-gradient(90deg,var(--accentColor),var(--accentColor2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.contactAsideText{max-width:36ch;color:var(--secText);font-size:1.05rem;font-weight:200;line-height:1.7}.contactReach{display:flex;flex-direction:column;gap:.9rem;margin-top:.5rem}.contactReachLabel{font-family:JetBrains Mono,ui-monospace,monospace;color:var(--secText);font-size:.8rem}.contactSocials{list-style:none;display:flex;gap:.75rem}.contactSocials a{display:grid;place-items:center;width:2.75rem;height:2.75rem;border:1px solid var(--highColor);border-radius:50%;transition:border-color .25s ease,transform .25s ease}.contactSocials a:hover{border-color:var(--accentColor);transform:translateY(-3px)}.contactSocials svg{width:1.35rem;height:1.35rem}.contactForm{position:relative;display:flex;flex-direction:column;gap:1.4rem;padding:2rem;background:linear-gradient(120deg,#d463c912,#61c1ea12),var(--cardColor);border-radius:16px;box-shadow:0 8px 26px -18px #d463c94d}.contactForm:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(120deg,#d463c999,#61c1ea80 55%,#ffffff0f);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}.contactField{display:flex;flex-direction:column;gap:.5rem}.contactField label{display:flex;align-items:baseline;gap:.5rem;font-family:JetBrains Mono,ui-monospace,monospace;color:var(--secText);font-size:.8rem}.contactFieldNum{color:var(--accentColor);font-weight:600}.contactField input,.contactField textarea{box-sizing:border-box;width:100%;padding:.85rem 1rem;background-color:var(--bgColor);border:1px solid var(--highColor);border-radius:10px;color:var(--firstText);font-family:inherit;font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease}.contactField textarea{min-height:9rem;resize:vertical}.contactField input::placeholder,.contactField textarea::placeholder{color:#6b6b6b}.contactField input:focus,.contactField textarea:focus{outline:none;border-color:var(--accentColor);box-shadow:0 0 0 3px #d463c92e}.contactSubmit{width:100%;height:auto;margin-top:.25rem;padding:.9rem 1.5rem;color:var(--bgColor);font-size:1.05rem;font-weight:600;border:none;border-radius:10px;background:linear-gradient(90deg,var(--accentColor),var(--accentColor2));cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.contactSubmit:hover{transform:translateY(-2px);box-shadow:0 12px 24px -10px #d463c980}.contactSubmit:disabled{opacity:.6;cursor:progress;transform:none;box-shadow:none}.contactResult{text-align:center;font-size:.95rem}.contactResult.success{color:#4ade80}.contactResult.error{color:#f87171}.contactResult.sending{color:var(--secText)}@media screen and (max-width:768px){#contactMain{padding:0 1.25rem}.contactGrid{grid-template-columns:1fr;gap:2rem}.contactForm{padding:1.5rem;min-width:0}.contactHeadline{font-size:2rem}}#skillsMain{max-width:1100px}.pageHead{text-align:center;margin-bottom:2.5rem}.pageTitle{font-size:2rem;margin-bottom:.85rem}.pageLede{max-width:50ch;margin:0 auto;color:var(--secText);font-size:var(--pSize);font-weight:200;line-height:1.6}.skillsBento{display:flex;flex-wrap:wrap;justify-content:center;gap:1.25rem}.skillPanel{position:relative;box-sizing:border-box;flex:1 1 460px;max-width:540px;background:linear-gradient(120deg,#d463c912,#61c1ea12),var(--cardColor);border-radius:16px;padding:1.5rem;box-shadow:0 8px 26px -18px #d463c94d}.skillPanel:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(120deg,#d463c999,#61c1ea80 55%,#ffffff0f);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}.skillPanelHead{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:.9rem;margin-bottom:1.1rem;border-bottom:1px solid var(--highColor)}.skillPanelPath{font-family:JetBrains Mono,ui-monospace,monospace;color:var(--firstText);font-size:1rem}.skillPanelCount{font-family:JetBrains Mono,ui-monospace,monospace;color:var(--accentColor2);font-size:.85rem}.skillPanelList{list-style:none;display:flex;flex-wrap:wrap;align-content:flex-start;gap:.6rem}.skillItem{display:inline-flex;align-items:center;gap:.55rem;padding:.45rem .85rem;border-radius:999px;background:var(--highColor);background:color-mix(in srgb,var(--c, var(--firstText)) 13%,transparent);border:1px solid var(--highColor);border:1px solid color-mix(in srgb,var(--c, var(--firstText)) 34%,transparent)}.skillItemIcon{display:grid;place-items:center;flex-shrink:0;color:var(--c, var(--firstText))}.skillItemIcon svg{width:1.25rem;height:1.25rem}.skillItemName{color:var(--firstText);font-size:.95rem}@media screen and (max-width:768px){.skillPanel{flex-basis:100%}}#oneProjectMain{max-width:1400px;display:flex;flex-direction:column;gap:1.5rem;padding:0 1.5rem}.opContent{display:flex;flex-direction:column;gap:2rem;min-width:0}#oneProjectMain h2{margin-bottom:1rem;font-size:1.3rem;font-weight:600;color:var(--firstText)}.opStatus{text-align:center;padding:4rem 0;color:var(--secText);font-size:var(--pSize)}.opStage:after,.opAbout:after,.opPanel:after,.opBack:after,.opTab:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(120deg,#d463c999,#61c1ea80 55%,#ffffff0f);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none;z-index:2}.opBack{position:sticky;top:6rem;z-index:5;align-self:flex-start;display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.1rem;border-radius:10px;color:var(--firstText);text-decoration:none;font-size:1rem;background:linear-gradient(120deg,#d463c912,#61c1ea12),#0a0a0a9e;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:0 10px 26px -18px #d463c966;transition:transform .2s ease,box-shadow .25s ease,color .2s ease}.opBack:hover{color:var(--accentColor2);font-weight:400;transform:translateY(-2px);box-shadow:0 12px 28px -16px #d463c980}.opBackArrow{transition:transform .2s ease}.opBack:hover .opBackArrow{transform:translate(-3px)}.opHero{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem 2rem}.opHeroTop{display:flex;align-items:center;gap:1rem;min-width:0}.opHeroHeadings{min-width:0}.opLogo{flex-shrink:0;display:grid;place-items:center;width:3.5rem;height:3.5rem;padding:.5rem;border-radius:12px;background:var(--cardColor);border:1px solid var(--highColor)}.opLogo img{max-width:100%;max-height:100%;object-fit:contain}#oneProjectMain h1{text-align:start;text-transform:none;letter-spacing:-.01em;text-indent:0;font-size:clamp(1.6rem,3vw,2.25rem);font-weight:700;line-height:1.1}.opTagline{margin-top:.2rem;color:var(--secText);font-size:1rem;font-weight:200;line-height:1.45}.opGithub{flex-shrink:0;display:inline-flex;align-items:center;gap:.6rem;width:fit-content;padding:.65rem 1.2rem;border-radius:10px;color:var(--bgColor);font-weight:600;text-decoration:none;background:linear-gradient(90deg,var(--accentColor),var(--accentColor2));transition:transform .2s ease,box-shadow .25s ease}.opGithub svg,.opGithub:hover svg{width:1.2rem;height:1.2rem;fill:var(--bgColor)}.opGithub:hover{color:var(--bgColor);font-weight:600;transform:translateY(-2px);box-shadow:0 14px 28px -12px #d463c999}.opCarousel{display:flex;flex-direction:column;gap:1rem}.opStage{position:relative;aspect-ratio:16 / 9;max-height:72vh;border-radius:16px;overflow:hidden;background:linear-gradient(120deg,#d463c912,#61c1ea12),var(--cardColor)}.opSlide{position:absolute;inset:0;display:flex;justify-content:center;align-items:safe center;overflow-y:auto;overflow-x:hidden;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s ease;scrollbar-width:thin;scrollbar-color:var(--accentColor) transparent}.opSlide.active{opacity:1;visibility:visible}.opSlide img{width:100%;height:auto;display:block}.opSlide::-webkit-scrollbar{width:10px}.opSlide::-webkit-scrollbar-button,.opSlide::-webkit-scrollbar-button:single-button,.opSlide::-webkit-scrollbar-button:vertical:start,.opSlide::-webkit-scrollbar-button:vertical:end,.opSlide::-webkit-scrollbar-corner{display:none;width:0;height:0}.opSlide::-webkit-scrollbar-track{margin:8px 0;background:transparent}.opSlide::-webkit-scrollbar-thumb{border-radius:999px;border:3px solid transparent;background:linear-gradient(var(--accentColor),var(--accentColor2));background-clip:padding-box}.opSlide::-webkit-scrollbar-thumb:hover{border-width:2px;background:linear-gradient(var(--accentColor2),var(--accentColor));background-clip:padding-box}.opTabs{display:flex;flex-wrap:wrap;gap:.6rem}.opTab{position:relative;width:auto;padding:.55rem 1.1rem;border:none;border-radius:10px;font-size:.92rem;font-weight:500;line-height:1.1;cursor:pointer;color:var(--firstText);background:linear-gradient(120deg,#d463c912,#61c1ea12),#0a0a0a9e;transition:transform .2s ease,color .2s ease,box-shadow .25s ease}.opTab:after{transition:opacity .2s ease}.opTab:hover{transform:translateY(-2px);color:var(--accentColor2);box-shadow:0 8px 18px -12px #d463c973}.opTab.active{color:var(--bgColor);font-weight:600;background:linear-gradient(90deg,var(--accentColor),var(--accentColor2));box-shadow:0 10px 22px -12px #d463c98c}.opTab.active:hover{color:var(--bgColor);transform:translateY(-2px)}.opTab.active:after{opacity:0}.opBody{display:grid;grid-template-columns:minmax(0,1fr) 18rem;gap:2.5rem;align-items:start}.opAbout{position:relative;padding:2rem;border-radius:16px;background:linear-gradient(120deg,#d463c912,#61c1ea12),var(--cardColor)}.opAbout p{color:var(--secText);font-size:var(--pSize);font-weight:200;line-height:1.8}.opSidebar{position:sticky;top:6rem;display:flex;flex-direction:column;gap:1.5rem}.opPanel{position:relative;padding:1.5rem;border-radius:16px;background:linear-gradient(120deg,#d463c912,#61c1ea12),var(--cardColor)}.opDetails{list-style:none;display:flex;flex-direction:column;gap:.8rem}.opDetails li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.opDetailKey{font-family:JetBrains Mono,ui-monospace,monospace;color:var(--accentColor);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.opDetails li span:last-child{color:var(--firstText);font-size:.95rem;text-align:right}.opStack{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(3rem,1fr));gap:.6rem}.opStackItem{display:grid;place-items:center;aspect-ratio:1;border-radius:10px;background:color-mix(in srgb,var(--firstText) 4%,transparent);border:1px solid color-mix(in srgb,var(--firstText) 9%,transparent);color:var(--secText)}.opStackItem svg{width:1.5rem;height:1.5rem}@media screen and (max-width:900px){.opBody{grid-template-columns:1fr}.opSidebar,.opBack{position:static}.opStage{aspect-ratio:auto;height:clamp(15rem,42vh,24rem)}}@keyframes revealUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.reveal{animation:revealUp .6s cubic-bezier(.22,1,.36,1) backwards;animation-delay:var(--rd, 0s)}.reveal-1{animation-delay:.08s}.reveal-2{animation-delay:.16s}.reveal-3{animation-delay:.24s}.reveal-4{animation-delay:.32s}.sortingProjectDiv{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0;padding:10px 0}.sort-btn{appearance:none;outline:none;box-sizing:border-box;position:relative;display:flex;align-items:center;justify-content:center;width:45px;height:45px;padding:0;border:none;border-radius:10px;background:linear-gradient(120deg,#d463c912,#61c1ea12),#0a0a0a9e;color:var(--firstText);cursor:pointer;font-size:1.1rem;transition:transform .2s ease,box-shadow .25s ease,color .2s ease,background .2s ease}.sort-btn:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(120deg,#d463c999,#61c1ea80 55%,#ffffff0f);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none;transition:opacity .2s ease}.sort-btn:hover{transform:translateY(-2px);color:var(--accentColor2);box-shadow:0 8px 18px -10px #d463c980}.sort-btn.active{color:var(--bgColor);background:linear-gradient(120deg,var(--accentColor),var(--accentColor2));transform:scale(1.05)}.sort-btn.active:after{opacity:0}.sort-btn:active{transform:scale(.95)}
