:root{--sm-accent: #000000}.staggered-menu-wrapper{position:relative;width:100%;height:100%;z-index:40;pointer-events:none}.staggered-menu-wrapper.fixed-wrapper{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:40;overflow:hidden}.staggered-menu-header{position:absolute;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:2em;background:transparent;pointer-events:none;z-index:20}.staggered-menu-header>*{pointer-events:auto}.sm-logo{display:flex;align-items:center;-webkit-user-select:none;user-select:none}.sm-logo-img{display:block;height:54px;margin-left:10px;margin-bottom:15px;width:auto;object-fit:contain}.sm-toggle{position:relative;display:inline-flex;align-items:center;gap:.3rem;background:transparent;border:none;cursor:pointer;color:#e9e9ef;font-weight:500;line-height:1;overflow:visible;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sm-toggle:focus-visible{outline:2px solid #ffffffaa;outline-offset:4px;border-radius:4px}.sm-line:last-of-type{margin-top:6px}.sm-toggle-textWrap{position:relative;display:inline-block;height:1em;overflow:hidden;white-space:nowrap;width:var(--sm-toggle-width, auto);min-width:var(--sm-toggle-width, auto)}.sm-toggle-textInner{display:flex;flex-direction:column;line-height:1}.sm-toggle-line{display:block;height:1em;line-height:1}.sm-icon{position:relative;width:14px;height:14px;flex:0 0 14px;display:inline-flex;align-items:center;justify-content:center;will-change:transform}.sm-panel-itemWrap{position:relative;overflow:hidden;line-height:1}.sm-icon-line{position:absolute;left:50%;top:50%;width:100%;height:2px;background:currentColor;border-radius:2px;transform:translate(-50%,-50%);will-change:transform}.sm-line{display:none!important}.staggered-menu-panel{position:absolute;top:0;right:0;width:clamp(260px,38vw,420px);height:100%;background:#fff;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;flex-direction:column;padding:6em 2em 2em;overflow-y:auto;z-index:10;pointer-events:auto}[data-position=left] .staggered-menu-panel{right:auto;left:0}.sm-prelayers{position:absolute;top:0;right:0;bottom:0;width:clamp(260px,38vw,420px);pointer-events:none;z-index:5}[data-position=left] .sm-prelayers{right:auto;left:0}.sm-prelayer{position:absolute;top:0;right:0;height:100%;width:100%;transform:translate(0)}.sm-panel-inner{flex:1;display:flex;flex-direction:column;gap:1.25rem}.sm-socials{margin-top:auto;padding-top:2rem;display:flex;flex-direction:column;gap:.75rem}.sm-socials-title{margin:0;font-size:1rem;font-weight:500;color:#0a72da}.sm-socials-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:row;align-items:center;gap:1rem;flex-wrap:wrap}.sm-socials-list .sm-socials-link{opacity:1}.sm-socials-list:hover .sm-socials-link{opacity:.35}.sm-socials-list:hover .sm-socials-link:hover{opacity:1}.sm-socials-link:focus-visible{outline:2px solid var(--sm-accent, #ff0000);outline-offset:3px}.sm-socials-list:focus-within .sm-socials-link{opacity:.35}.sm-socials-list:focus-within .sm-socials-link:focus-visible{opacity:1}.sm-socials-link{font-size:1.2rem;font-weight:500;color:#111;text-decoration:none;position:relative;padding:2px 0;display:inline-block;transition:color .3s ease,opacity .3s ease}.sm-socials-link:hover{color:var(--sm-accent, #ff0000)}.sm-panel-title{margin:0;font-size:1rem;font-weight:600;color:#fff;text-transform:uppercase}.sm-panel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.sm-panel-item{position:relative;color:#000;font-weight:600;font-size:3.5rem;cursor:pointer;line-height:1;letter-spacing:-2px;text-transform:uppercase;transition:background .25s,color .25s;display:inline-block;text-decoration:none;padding-right:1.4em}.staggered-menu-panel .sm-socials-list .sm-socials-link{opacity:1;transition:opacity .3s ease}.staggered-menu-panel .sm-socials-list:hover .sm-socials-link:not(:hover){opacity:.35}.staggered-menu-panel .sm-socials-list:focus-within .sm-socials-link:not(:focus-visible){opacity:.35}.staggered-menu-panel .sm-socials-list .sm-socials-link:hover,.staggered-menu-panel .sm-socials-list .sm-socials-link:focus-visible{opacity:1}.sm-panel-itemLabel{display:inline-block;will-change:transform;transform-origin:50% 100%}.sm-panel-item:hover{color:#0a72da}.sm-panel-list[data-numbering]{counter-reset:smItem}.sm-panel-list[data-numbering] .sm-panel-item:after{counter-increment:smItem;content:counter(smItem,decimal-leading-zero);position:absolute;top:.1em;right:2.8em;font-size:18px;font-weight:400;color:#0a72da;letter-spacing:0;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:var(--sm-num-opacity, 0)}@media(max-width:1024px){.staggered-menu-panel{width:100%;left:0;right:0}.staggered-menu-wrapper[data-open] .sm-logo-img{filter:invert(100%)}}@media(max-width:640px){.staggered-menu-panel{width:100%;left:0;right:0}.staggered-menu-wrapper[data-open] .sm-logo-img{filter:invert(100%)}}.sm-routeWipe{position:fixed;inset:0;background:#fff;z-index:9;pointer-events:none;transform:translate(110%);display:none;will-change:transform}.skillStack{width:36px;height:36px}.skillStackBtn{cursor:pointer;border:0;padding:0;appearance:none;-webkit-appearance:none;line-height:0}.skillStackBtn:disabled{cursor:default;opacity:.85}.skillStackBtn.hasCards{position:relative}.skillStackBtn.hasCards:after{content:"";position:absolute;right:-2px;top:-2px;width:8px;height:8px;border-radius:999px;background:#7f9f7aeb;border:1px solid rgba(255,255,255,.22);box-shadow:0 10px 18px #0000004d;opacity:.9}.skillStackBtn:disabled:after{display:none}.skillCard--open{z-index:120}.skillStack .skillIcon{width:36px;height:36px;border-radius:13px}.skillStackCards{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:40;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s ease,visibility 0s linear .18s}.skillStack.open .skillStackCards{pointer-events:auto;opacity:1;visibility:visible;transition:opacity .18s ease}.skillStackCard{position:absolute;left:50%;top:50%;width:260px;padding:12px;border-radius:12px;background:linear-gradient(180deg,#121413,#0a0c0b);border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 55px #0000008c;color:#ffffffeb;text-decoration:none;opacity:0;transform:translate(-50%,10%);transition:transform .25s ease,opacity .25s ease,filter .18s ease;will-change:transform,opacity}.skillStack.open .skillStackCard{opacity:.95}.skillStack.open .card-1{transform:translate(calc(-50% - 130px),calc(-50% - 110px)) rotate(-8deg) translate(var(--magnet-x, 0px),var(--magnet-y, 0px))}.skillStack.open .card-2{transform:translate(calc(-50% + 150px),calc(-20% - 140px)) rotate(7deg) translate(var(--magnet-x, 0px),var(--magnet-y, 0px))}.skillStack.open .card-3{transform:translate(calc(-50% + 10px),calc(-50% - 235px)) translate(var(--magnet-x, 0px),var(--magnet-y, 0px))}.skillStack.open .skillStackCard:hover{border-color:#ffffff47;filter:brightness(1.05)}.skillStackCardTitle{font-weight:720;letter-spacing:-.01em;margin:0 0 4px}.skillStackCardBlurb{color:#ffffffb8;line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.skillStackCardLink{margin-top:10px;font-size:12px;color:#5983f4c7;letter-spacing:.02em}@media(max-width:750px){.skillStackCards{position:fixed;inset:0;transform:none;z-index:999;padding:14px 14px calc(14px + env(safe-area-inset-bottom,0px));background:#0000008c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;justify-content:flex-end;gap:10px;transition:opacity .18s ease,visibility 0s linear .18s}.skillStack.open .skillStackCards{transition:opacity .18s ease}.skillStackCard{position:relative;left:auto;top:auto;width:min(92vw,420px);margin:0 auto;opacity:0;transform:translateY(12px)}.skillStack.open .skillStackCard{opacity:1;transform:translateY(0)}.skillStack.open .card-1,.skillStack.open .card-2,.skillStack.open .card-3{transform:translateY(0)}.skillStackCardBlurb{-webkit-line-clamp:3;line-clamp:3}}.ditherBg{position:fixed;inset:0;z-index:1;mix-blend-mode:luminosity}.ditherBg canvas{opacity:.8;filter:saturate(.9) contrast(5) brightness(.3)}.animated-gradient-text{position:relative;margin:0 auto;display:flex;max-width:fit-content;flex-direction:row;align-items:center;justify-content:center;border-radius:1.25rem;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:box-shadow .5s ease-out;overflow:hidden;cursor:pointer}.animated-gradient-text.with-border{padding:.35rem .75rem}.gradient-overlay{position:absolute;inset:0;border-radius:inherit;z-index:0;pointer-events:none}.gradient-overlay:before{content:"";position:absolute;border-radius:inherit;width:calc(100% - 2px);height:calc(100% - 2px);left:50%;top:50%;transform:translate(-50%,-50%);background-color:#060010;z-index:-1}.text-content{display:inline-block;position:relative;z-index:2;background-clip:text;-webkit-background-clip:text;color:transparent}.nameGradient.animated-gradient-text{display:inline;max-width:none;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:visible;cursor:default}.nameGradient .text-content{display:inline}.text-type{display:inline-block;white-space:pre-wrap}.text-type__cursor{margin-left:.25rem;display:inline-block;opacity:1}.text-type__cursor--hidden{display:none}.text-type__cursor{margin-left:.25rem;display:inline-block;opacity:1;transform:translateY(1px)}.projectsDetailed{display:flex;flex-direction:column;gap:16px}.projectDetailCard{position:relative}.projectDetailContent{display:grid;grid-template-columns:1fr 240px;gap:20px;align-items:start}@media(max-width:768px){.projectDetailContent{grid-template-columns:1fr}.projectDetailRight{order:-1}}.projectDetailLeft{min-width:0}.projectDetailRight{position:relative}.projectThumbnail{width:100%;height:180px;object-fit:cover;border-radius:12px;border:1px solid rgba(255,255,255,.1);display:block}.projectThumbnailPlaceholder{width:100%;height:180px;border-radius:12px;border:1px dashed rgba(255,255,255,.14);background:#ffffff05;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.projectThumbnailIcon{font-size:32px;opacity:.4}.projectThumbnailText{font-size:12px;color:#ffffff73;letter-spacing:.02em}.projectDetailHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.projectExpandBtn{display:inline-flex;align-items:center;gap:8px;justify-content:center;margin-top:12px}.projectDetailExpanded{overflow:hidden}.projectSection{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}.projectSection:first-child{border-top:none;padding-top:0}.projectSectionTitle{font-size:16px;font-weight:700;letter-spacing:-.01em;margin:0 0 10px;color:#ffffffe0}.projectList{margin:0;padding-left:20px;color:#ffffffc7;line-height:1.6}.projectList li{margin-bottom:6px}.projectGallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:12px}.projectImageWrap{position:relative}.projectImage{width:100%;height:auto;border-radius:12px;border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:transform .2s ease,border-color .2s ease;display:block}.projectImage:hover{transform:scale(1.02);border-color:#ffffff2e}.projectImageCaption{margin-top:6px;font-size:12px;color:#ffffff9e;text-align:center;line-height:1.4}.projectLightbox{position:fixed;inset:0;z-index:9999;background:#000000eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:20px;cursor:pointer}.projectLightboxClose{position:absolute;top:20px;right:20px;width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#ffffffeb;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,background .2s ease;z-index:10000}.projectLightboxClose:hover{transform:scale(1.05);background:#ffffff24}.projectLightboxImage{max-width:90vw;max-height:90vh;width:auto;height:auto;border-radius:16px;border:1px solid rgba(255,255,255,.14);cursor:default}@media(max-width:640px){.projectGallery{grid-template-columns:1fr}.projectLightboxImage{max-width:95vw;max-height:95vh}}:root{--bg: hsl(120, 7%, 3%);--bg2: #0b0e0c;--panel: rgba(255, 255, 255, .06);--panel2: rgba(255, 255, 255, .085);--text: rgba(255, 255, 255, .92);--muted: rgba(255, 255, 255, .68);--hair: rgba(255, 255, 255, .12);--plant: #7f9f7a;--plant2: #587a5e;--walnut: #6a4a2f;--walnut2: #3f2a1c;--ring: rgba(255, 255, 255, .18);--max: 1020px;--radius: 18px}*{box-sizing:border-box}html,body{height:100%}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,"Apple Color Emoji","Segoe UI Emoji";overflow-x:hidden;opacity:1}a{color:inherit;text-decoration:none}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.app{position:relative;min-height:100%}.main{position:relative;z-index:2}.section{padding:56px 18px}.sectionInner{max-width:var(--max);margin:0 auto}.sectionHeader{display:flex;align-items:center;gap:14px;margin-bottom:14px}.hairline{flex:1;height:1px;background:linear-gradient(90deg,#ffffff24,#ffffff0f)}.hero{padding-top:96px;padding-bottom:54px}.kicker{margin:0 0 10px;color:#ffffff9e;letter-spacing:.14em;text-transform:uppercase;font-size:12px}.h1{margin:0;font-size:clamp(38px,6vw,72px);line-height:1.02;letter-spacing:-.03em}.h2{margin:10px 0 0;font-size:clamp(18px,2.4vw,26px);color:#fffc;font-weight:600}.h3{margin:0;font-size:18px;letter-spacing:.01em}.h4{margin:0;font-size:18px;letter-spacing:-.01em}.tagline{margin:16px 0 0;max-width:70ch;font-size:16px;color:#ffffffc2;line-height:1.6}.ctaRow{margin-top:18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#ffffffe6;transition:transform .12s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease;-webkit-user-select:none;user-select:none}.btn:hover{transform:translateY(-1px);background:#ffffff14;border-color:#ffffff2e}.btn.primary{background:linear-gradient(90deg,#090909d2,#6a4a2f2e);border-color:#ffffff2e;box-shadow:0 10px 30px #00000040}.iconRow{display:flex;gap:8px;margin-left:6px}.iconBtn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#ffffff0b;border:1px solid rgba(255,255,255,.1);transition:transform .12s ease,background .12s ease,border-color .12s ease}.iconBtn:hover{transform:translateY(-1px);background:#ffffff14;border-color:#ffffff2e}.scrollHint{margin-top:34px;font-size:12px;color:#ffffff85;letter-spacing:.2em;text-transform:uppercase;position:relative;width:fit-content}.scrollHint:after{content:"";display:block;width:100%;height:1px;background:#ffffff29;margin-top:10px;transform-origin:left;animation:hint 1.6s ease-in-out infinite}@keyframes hint{0%,to{transform:scaleX(.3);opacity:.5}50%{transform:scaleX(1);opacity:1}}.grid2{display:grid;grid-template-columns:1.1fr .9fr;gap:12px}@media(max-width:860px){.grid2{grid-template-columns:1fr}}.card{background:radial-gradient(900px 260px at 0% 0%,rgba(106,74,47,.16),transparent 60%),linear-gradient(180deg,#ffffff13,#ffffff09);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.p{margin:0 0 10px;line-height:1.5;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-weight:600}.p:last-child{margin-bottom:0}.muted{color:var(--muted)}.divider{height:1px;background:#ffffff1a;margin:12px 0}.chips{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:999px;background:#ffffff0b;border:1px solid rgba(255,255,255,.1);color:#ffffffd1;font-size:13px;white-space:nowrap}.chipIcon{width:18px;height:18px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;letter-spacing:.02em;border:1px solid rgba(255,255,255,.14)}.chipIcon--c{background:#3c8cff38;color:#d2ebfff2}.chipIcon--react{background:#50c8ff2e;color:#dcfaffeb}.chipIcon--typescript{background:#419bff2e;color:#e1f5ffeb}.chipIcon--node{background:#78dc8c29;color:#e6ffebeb}.chipIcon--csharp{background:#be78ff29;color:#f5e6ffeb}.chipIcon--python{background:#ffdc781f;color:#fff5dceb}.tagIcon{width:20px;height:20px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 24px #00000038}.tagSvg{width:14px;height:14px;opacity:.95}.tagIcon--default{background:#ffffff0f;color:#ffffffe0}.tagIcon--react{background:#50c8ff29;color:#e6fafff2}.tagIcon--typescript{background:#419bff29;color:#e6f5fff2}.tagIcon--vite{background:#ffdc7824;color:#fff5dcf2}.tagIcon--framer{background:#be78ff24;color:#f5e6fff2}.tagIcon--python{background:#5aaaff24;color:#ebf5fff2}.tagIcon--node{background:#78dc8c24;color:#ebfff0f2}.tagIcon--pcb{background:#7f9f7a24;color:#ebfff0f2}.tagIcon--telemetry{background:#6a4a2f29;color:#fff5ebf2}.tagIcon--modular{background:#ffffff0f;color:#ffffffeb}.tagIcon--edu{background:#7f9f7a1f;color:#ebfff0f2}.tagIcon--c{background:#3c8cff2e;color:#e6f5fff2}.projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;grid-auto-rows:1fr;align-items:stretch}.projects>*{height:100%}.projects>*>.projectCard{height:100%}.projectCard{height:100%;display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.1);background:radial-gradient(900px 260px at 0% 0%,rgba(106,74,47,.16),transparent 60%),linear-gradient(180deg,#ffffff13,#ffffff09);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .12s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease}.projectCard:hover{border-color:#ffffff29;box-shadow:0 18px 40px #00000038}.projectTop .p{margin-top:8px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.projectTop .p{margin-top:8px}.projectLinks{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}.link{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:999px;background:#ffffff0b;border:1px solid rgba(255,255,255,.1);color:#ffffffdb;transition:transform .12s ease,background .12s ease,border-color .12s ease}.link:hover{transform:translateY(-1px);background:#ffffff14;border-color:#ffffff2e}.contactCard{display:flex;flex-direction:column;gap:12px}.contactRow{display:flex;gap:10px;flex-wrap:wrap}.footer{max-width:var(--max);margin:0 auto;padding:8px 18px 32px;display:flex;justify-content:space-between;gap:14px;border-top:1px solid rgba(255,255,255,.08)}.navWrap{position:static;top:0;z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#07080794;border-bottom:1px solid rgba(255,255,255,.08)}.nav{max-width:var(--max);margin:0 auto;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:transparent;border:1px solid transparent;color:#ffffffe0;cursor:pointer}.brand:hover{border-color:#ffffff1f;background:#ffffff0a}.brandDot{width:10px;height:10px;border-radius:999px;background:linear-gradient(135deg,#7f9f7ae6,#6a4a2fe6);box-shadow:0 0 18px #7f9f7a33}.brandText{font-weight:700;letter-spacing:.04em;text-transform:lowercase}.navLinks{display:flex;align-items:center;gap:6px;padding:6px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a}.navBtn{padding:8px 12px;border-radius:999px;border:0;background:transparent;color:#ffffffb8;cursor:pointer}.navBtn.active{color:#ffffffeb;background:#ffffff14}.menuBtn{display:none;width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;cursor:pointer}.menuBtn span{display:block;width:18px;height:2px;background:#ffffffd1;margin:4px auto;border-radius:999px}.drawer{max-width:var(--max);margin:0 auto;padding:10px 14px 14px;display:flex;gap:8px;flex-wrap:wrap}.drawerBtn{padding:10px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:#ffffffc7;cursor:pointer}.drawerBtn.active{background:#ffffff17;color:#ffffffeb}@media(max-width:720px){.navLinks{display:none}.menuBtn{display:block}}.skillsGrid{margin-top:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(max-width:520px){.skillsGrid{grid-template-columns:1fr}}.skillCard{display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;z-index:999;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .12s ease,background .12s ease,border-color .12s ease}.skillCard:hover{transform:translateY(-1px);background:#ffffff12;border-color:#ffffff29}.skillIcon{width:38px;height:38px;border-radius:14px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.14);box-shadow:0 12px 30px #00000040}.skillIcon--blue{background:#4696ff2e;color:#e1f5fff2}.skillIcon--cyan{background:#50dcff24;color:#e1fafff2}.skillIcon--green{background:#78dc8c24;color:#e6ffebf2}.skillIcon--sky{background:#6eb4ff24;color:#e1f5fff2}.skillIcon--purple{background:#be78ff24;color:#f5e6fff2}.skillIcon--amber{background:#ffc8781f;color:#fff5dcf2}.skillLabel{font-weight:650;letter-spacing:-.01em;color:#ffffffe0;line-height:1.2}.skillCard--stack{position:relative;overflow:visible;z-index:0}.skillCard--open{z-index:600}.skillHint{margin-top:4px;font-size:11px;opacity:.85}.titleType{display:inline;white-space:nowrap}.pageWipe{position:fixed;inset:0;background:#fff;z-index:39;pointer-events:none;transform:translate(110%);will-change:transform}.skillsHero{padding-top:110px;padding-bottom:64px}.skillsHeroMeta{display:flex;gap:8px;flex-wrap:wrap;margin-left:6px}.skillsMetaPill{display:inline-flex;align-items:center;padding:8px 10px;border-radius:999px;background:#ffffff0b;border:1px solid rgba(255,255,255,.1);color:#ffffffc7;font-size:12px;white-space:nowrap}.skillsGroups{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px;align-items:start}.skillsGroupHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.skillsMiniProjects{display:grid;grid-template-columns:1fr;gap:10px}.skillsMiniProject{display:block;padding:10px 12px;border-radius:14px;background:#ffffff09;border:1px solid rgba(255,255,255,.1);transition:transform .12s ease,background .12s ease,border-color .12s ease}.skillsMiniProject:hover{transform:translateY(-1px);background:#ffffff0f;border-color:#ffffff29}.skillsMiniTitle{font-weight:650;letter-spacing:-.01em;color:#ffffffe0;margin-bottom:4px}.skillsMiniBlurb{color:#ffffffad;line-height:1.4;font-size:13px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.ghCalWrap{margin-top:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px}@media(max-width:520px){.ghCalWrap{transform:scale(.95);transform-origin:left top}}.ghCalWrap{width:100%;max-width:100%}.ghCalInner{width:100%;max-width:100%;overflow:hidden;display:flex;justify-content:flex-end}.ghCalInner>*{flex:0 0 auto}.grid2>*{min-width:0}.ghCalWrap{width:100%;min-width:0;overflow:hidden}.ghCalInner{display:flex;justify-content:flex-end}.ghCalWrap svg{display:block;max-width:100%}.skillsGroups>.card.skillsGroupCard--open{position:relative;z-index:500}.skillsGroups>.card{width:100%}.skillsControls{padding:14px;margin-bottom:12px}.skillsControlsTop{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.skillsSearch{flex:1 1 320px;min-width:220px;padding:10px 12px;border-radius:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);color:#ffffffeb;outline:none}.skillsSearch::placeholder{color:#ffffff80}.skillsSearch:focus{border-color:#ffffff2e;box-shadow:0 0 0 4px #74a7fe14}.skillsToggle{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;background:#ffffff0b;border:1px solid rgba(255,255,255,.1);color:#ffffffc7;font-size:12px;white-space:nowrap;-webkit-user-select:none;user-select:none}.skillsToggle input{accent-color:#74a7fe}.skillsGroupMeta{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.skillsEmpty{padding:18px;text-align:center;color:#ffffffad}.chip--active{background:#ffffff17;border-color:#ffffff2e;color:#ffffffeb}.contactHero .tagline{max-width:72ch}.contactMiniHint{font-size:12px;color:#ffffff8c;letter-spacing:.01em}.contactGrid{margin-top:8px}.contactQuickTop{display:flex;flex-direction:column;gap:10px}.contactQuickTitle{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:#ffffffe0}.contactPills{display:flex;flex-wrap:wrap;gap:8px}.contactPill{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#ffffff0b;border:1px solid rgba(255,255,255,.1);color:#ffffffc7;font-size:12px}.contactList{margin:8px 0 0;padding-left:18px;color:#ffffffc7;line-height:1.55}.contactEmailBox{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1)}.contactEmail{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:16px;color:#ffffffdb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn.contactCopyBtn{padding:8px 12px}.contactActions{margin-top:12px;display:flex;flex-wrap:wrap;gap:10px}.contactLinkGrid{display:grid;grid-template-columns:1fr;gap:10px}.contactLinkCard{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);transition:transform .12s ease,background .12s ease,border-color .12s ease}.contactLinkCard:hover{transform:translateY(-1px);background:#ffffff12;border-color:#ffffff2e}.contactLinkCard--primary{background:radial-gradient(650px 180px at 0% 0%,rgba(106,74,47,.18),transparent 65%),#ffffff0b;border-color:#ffffff29}.contactLinkIcon{width:40px;height:40px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.contactLinkBody{min-width:0;flex:1}.contactLinkTitle{font-weight:750;letter-spacing:.01em}.contactLinkMeta{margin-top:2px;font-size:12px;color:#ffffff9e}.contactLinkArrow{opacity:.75}@media(max-width:860px){.contactEmailBox{flex-direction:column;align-items:stretch}.btn.contactCopyBtn{width:100%;justify-content:center}}
