@font-face{font-family:Nasalization Rg;src:url(/fonts/Nasalization%20Rg.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{--body-background: #060606;--text-primary: #c0c0c0;--link-primary: #d6d6d6;--stone-background: #000000;--content-panel: #050505;--border-color: rgba(192, 192, 192, .25)}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{width:100%;min-height:100%}body{margin:0;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--body-background);color:var(--text-primary)}a{color:inherit}.landing-page{min-height:100vh;display:grid;place-content:center;text-align:center;background:var(--body-background);position:relative;overflow:hidden}.landing-page:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent 0%,rgba(180,180,180,.2) 15%,rgba(210,210,210,.55) 50%,rgba(180,180,180,.2) 85%,transparent 100%);pointer-events:none;z-index:2}.landing-constellation{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.landing-hero{width:fit-content;display:grid;gap:1.3rem;justify-items:stretch;position:relative;z-index:1}.landing-title{margin:0;font-family:Nasalization Rg,Inter,Segoe UI,sans-serif;font-size:72pt;line-height:1;font-weight:400;letter-spacing:.02em}@keyframes shine-sweep{0%{background-position:0% center}to{background-position:100% center}}.landing-title,.landing-link{background:linear-gradient(115deg,#7a7a7a,#a0a0a0,#7a7a7a 32%,#c8c8c8 37%,#fff 44%,#f0f0f0,#fff 56%,#c8c8c8 63%,#7a7a7a 68%,#a0a0a0,#7a7a7a);background-size:300% 100%;animation:shine-sweep 6s linear infinite;-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 12px rgba(255,255,255,.2)}.landing-nav{display:flex;justify-content:space-between;gap:2.2rem;width:100%}.landing-link{text-decoration:none;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;color:var(--link-primary);position:relative;padding-bottom:.2rem}.landing-link:after{content:"";position:absolute;left:50%;bottom:0;width:0;height:1px;background:var(--link-primary);transition:width .38s ease,left .38s ease}.landing-link:hover:after,.landing-link:focus-visible:after{width:100%;left:0}.section-page{min-height:100vh;background:#1c1c1c;display:flex;flex-direction:column}.top-strip{background:#000;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.8rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border-color);min-height:3.5rem;position:sticky;top:0;z-index:200}.top-strip-menu{justify-self:start}.top-strip-hamburger{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:2rem;height:2rem;padding:0;background:none;border:none;outline:none;cursor:pointer;transform-origin:center center;transition:transform .32s ease}.top-strip-hamburger--open{transform:rotate(90deg)}.top-strip-hamburger span{display:block;width:18px;height:1px;background:var(--text-primary)}.top-strip-hamburger:hover span{opacity:.7}@keyframes dropdown-item-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.top-strip-dropdown{position:absolute;top:100%;left:0;background:#1c1c1c;min-width:170px;z-index:100;display:flex;flex-direction:column;overflow:hidden}.dropdown-item{position:relative;padding:1rem;text-decoration:none;color:var(--text-primary);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;opacity:0;animation:dropdown-item-in .18s ease forwards;outline:none}.dropdown-item-label{display:inline-block;transition:translate .4s ease}.dropdown-item:nth-child(1){animation-delay:0ms}.dropdown-item:nth-child(2){animation-delay:45ms}.dropdown-item:nth-child(3){animation-delay:90ms}.dropdown-item:nth-child(4){animation-delay:135ms}.dropdown-item:nth-child(5){animation-delay:.18s}.dropdown-item:nth-child(6){animation-delay:225ms}.dropdown-item+.dropdown-item:before{content:"";position:absolute;top:0;left:0;right:1rem;height:1px;background:#c0c0c080}.dropdown-item:hover .dropdown-item-label,.dropdown-item:focus .dropdown-item-label{translate:10px 0}.top-strip-home{font-family:Nasalization Rg,Inter,Segoe UI,sans-serif;font-size:1.9rem;text-decoration:none;letter-spacing:.03em;white-space:nowrap;justify-self:center}.top-strip-spacer{justify-self:end;width:2rem;visibility:hidden;pointer-events:none}.content-shell{width:calc(100% - 350px);margin:0 auto;padding:1.1rem;background:#00000080;flex:1}.section-content-title{margin:0 0 1.2rem;font-size:1.6rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;opacity:1;text-align:center;color:var(--text-primary)}.about-section,.contact-section{margin-top:1.5rem}.about-section p,.contact-section p{margin:0;font-size:.95rem;line-height:1.7;opacity:.8}.resume-panel{display:flex;flex-direction:column;align-items:center;gap:.6rem}.resume-heading{font-size:2rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-primary);margin:50px 0 1.2rem;text-align:center}.resume-download-square{width:1.7rem;height:1.7rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-color);text-decoration:none;border-radius:4px;font-size:.95rem;line-height:1}.resume-viewer-shell{width:812px;max-width:100%;border:1px solid var(--border-color);border-radius:16px;overflow:hidden;background:#020202}.resume-viewer{width:100%;height:1046px;border:0;display:block;margin:5px 0}.resume-note{margin:.8rem 0 0;font-size:.88rem;opacity:.86}.intro-section{padding:7rem 1rem 10.5rem;text-align:center}.intro-header{font-size:3.2rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-primary);margin:0 0 5rem;opacity:0;transform:translateY(14px);transition:opacity 1.4s ease,transform 1.4s ease}.intro-section--visible .intro-header{opacity:1;transform:translateY(0)}.intro-body{font-size:1.05rem;line-height:1.85;color:var(--text-primary);margin:.4rem 0;opacity:0;transform:translateY(8px);transition:opacity 1.1s ease,transform 1.1s ease}.intro-section--visible .intro-body{opacity:.7;transform:translateY(0)}.platforms-section{margin-top:calc(2.5rem + 50px);display:flex;flex-direction:column;align-items:center;overflow-x:hidden}.platforms-heading{margin:0 0 2.4rem;font-size:2rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;opacity:.55;text-align:center}.platforms-carousel-wrapper{width:100%;display:flex;flex-direction:column;align-items:center}.platforms-carousel{position:relative;width:100%;height:520px;overflow:visible;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-y}.platforms-carousel:active{cursor:grabbing}.platform-card{position:absolute;left:50%;top:0;width:28%;display:flex;flex-direction:column;align-items:center;will-change:transform,opacity,filter;border-radius:12px;overflow:hidden;background:linear-gradient(to bottom,transparent 0%,transparent 38%,rgba(192,192,192,.07) 62%);padding:0 1rem 1.2rem}.platform-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:inherit;padding:1px;background:linear-gradient(to bottom,transparent 0%,transparent 50%,var(--border-color) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.platform-card-image-area{margin:0 -1rem;width:calc(100% + 2rem);aspect-ratio:4 / 3;overflow:hidden;flex-shrink:0}.platform-card-image-area img{width:100%;height:100%;object-fit:contain}.platform-card-label{margin:.7rem 0 .4rem;font-size:1.1rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;text-align:center;opacity:.85}.platform-card-bullets{margin:0;padding:0 0 0 1.2rem;font-size:.88rem;line-height:1.7;opacity:.75;width:100%}.carousel-indicators{display:flex;gap:.5rem;margin-bottom:1rem}.platforms-carousel-wrapper .carousel-indicators{margin-top:4.5rem}.protocols-carousel-wrapper .carousel-indicators{margin-top:1.6rem}.carousel-dot{width:6px;height:6px;border-radius:50%;background:var(--border-color);border:none;padding:0;cursor:pointer;transition:background .24s ease,transform .24s ease}.carousel-dot--active{background:var(--text-primary);transform:scale(1.35)}.languages-section{margin-top:2.5rem;display:flex;flex-direction:column;align-items:center;overflow-x:hidden}.languages-heading{margin:0 0 2.4rem;font-size:2rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;opacity:.55;text-align:center}.languages-carousel-wrapper{width:100%;display:flex;flex-direction:column;align-items:center;margin-top:3rem}.languages-carousel{position:relative;width:100%;height:580px;overflow:visible;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-y}.languages-carousel:active{cursor:grabbing}.language-card{position:absolute;left:50%;top:0;width:16%;display:flex;flex-direction:column;align-items:center;will-change:transform,opacity,filter;border-radius:12px;overflow:hidden;padding:0 .8rem 1.4rem;transform-origin:top center;background:linear-gradient(to bottom,transparent 0%,transparent 50%,rgba(192,192,192,.07) 68%)}.language-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:inherit;padding:1px;background:linear-gradient(to bottom,transparent 0%,transparent 50%,var(--border-color) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.language-card-image{width:100%;height:200px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.language-card-image img{width:144px;height:144px;object-fit:contain}.language-card-name{margin:1.6rem 0 .7rem;font-size:2rem;font-weight:700;letter-spacing:.03em;text-align:center;line-height:1}.language-card-bullets{margin:0;padding:0 0 0 .8rem;font-size:.75rem;line-height:1.6;opacity:.72}.languages-carousel-wrapper .carousel-indicators{margin-top:1.8rem}.scripting-section{margin-top:3rem;margin-bottom:2rem;display:flex;flex-direction:column}.scripting-heading{margin:0 0 2.4rem;font-size:2rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;opacity:.55;text-align:center}.scripting-cards{display:flex;flex-direction:column;gap:1.4rem}.scripting-card{position:relative;display:flex;flex-direction:row;min-height:260px;border-radius:8px;overflow:hidden;background:#c0c0c012}.scripting-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:inherit;padding:1px;background:linear-gradient(to right,transparent 0%,transparent 50%,var(--border-color) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.scripting-card-image{width:42%;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center}.scripting-card-image img{width:100%;height:100%;object-fit:cover}.scripting-card-content{flex:1;padding:1.4rem 1.6rem;display:flex;flex-direction:column}.scripting-card-title{margin:0 0 .8rem;font-size:1.2rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.scripting-card-bullets{margin:0;padding:0 0 0 1rem;font-size:.88rem;line-height:1.7;opacity:.75}.protocols-section{margin-top:3rem;display:flex;flex-direction:column;align-items:center;overflow-x:hidden}.protocols-heading{margin:0 0 2.4rem;font-size:2rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;opacity:.55;text-align:center}.protocols-carousel-wrapper{width:100%;display:flex;flex-direction:column;align-items:center}.protocols-carousel{position:relative;width:100%;height:300px;overflow:visible;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-y}.protocols-carousel:active{cursor:grabbing}.protocol-card{position:absolute;left:50%;top:2.8rem;width:17%;display:flex;flex-direction:column;will-change:transform,opacity,filter;border-radius:12px;overflow:hidden;padding:1.4rem 1.2rem 1.6rem;background:#c0c0c012;transform-origin:top center}.protocol-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:inherit;padding:1px;background:linear-gradient(to bottom,transparent 0%,transparent 50%,var(--border-color) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.protocol-card-name{margin:0 0 .7rem;font-size:2rem;font-weight:700;letter-spacing:.03em;text-align:center;line-height:1}.protocol-card-bullets{margin:0;padding:0 0 0 .8rem;font-size:.75rem;line-height:1.6;opacity:.72}.design-section{margin-top:3rem;margin-bottom:2rem;display:flex;flex-direction:column}.design-heading{margin:0 0 2.4rem;font-size:2rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;opacity:.55;text-align:center}.design-cards{display:flex;flex-direction:column;gap:1.4rem}.design-card{position:relative;display:flex;flex-direction:row;min-height:260px;border-radius:8px;overflow:hidden;background:#c0c0c012}.design-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:inherit;padding:1px;background:linear-gradient(to right,transparent 0%,transparent 50%,var(--border-color) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.design-card-image{width:42%;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;padding-left:1.6rem}.design-card-image img{width:100%;height:100%;object-fit:contain}.design-card-content{flex:1;padding:1.4rem 1.6rem;display:flex;flex-direction:column}.design-card-title{margin:0 0 .8rem;font-size:1.2rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.design-card-bullets{margin:0;padding:0 0 0 1rem;font-size:.88rem;line-height:1.7;opacity:.75}.card-projects-link{display:block;margin-top:auto;padding-top:1rem;font-size:.76rem;letter-spacing:.06em;text-decoration:none;text-align:center;color:var(--text-primary);opacity:.38;transition:opacity .22s ease}.card-projects-link:hover{opacity:.85;text-decoration:underline}.projects-section{margin-top:2rem;width:100%;display:flex;flex-direction:column;align-items:center}.projects-section-heading{font-size:2rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-primary);margin-top:50px;margin-bottom:50px;opacity:1;text-align:center}.project-cards{width:100%;display:flex;flex-direction:column;gap:1.4rem}.project-card{position:relative;display:flex;flex-direction:column;border-radius:8px;overflow:hidden;background:#c0c0c012}.project-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:inherit;padding:1px;background:linear-gradient(to right,transparent 0%,transparent 50%,var(--border-color) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.project-card-summary{display:flex;flex-direction:row;min-height:260px;cursor:pointer;position:relative}.project-card-image{width:42%;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;padding-left:1.6rem}.project-card-image img{width:100%;height:100%;object-fit:contain}.project-card-body{flex:1;padding:1.4rem 1.6rem;display:flex;flex-direction:column}.project-card-title{margin:0 0 .8rem;font-size:1.2rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.project-card-bullets{flex:1;display:flex;flex-direction:column;justify-content:center;margin:0;padding:0 0 0 1rem;font-size:.88rem;line-height:1.7;opacity:.75}.project-card-chevron{display:flex;align-items:center;padding:0 1.4rem;font-size:1.5rem;opacity:.35;flex-shrink:0;transition:transform .3s ease,opacity .3s ease;-webkit-user-select:none;user-select:none}.project-card--expanded .project-card-chevron{transform:rotate(90deg);opacity:.7}@keyframes border-pulse{0%,to{opacity:.2}50%{opacity:1}}.border-shine-svg{opacity:0;transition:opacity 1.2s ease}.project-card:hover .border-shine-svg{animation:border-pulse 5s ease-in-out infinite}.project-card-details{padding:1.4rem 1.6rem;display:flex;flex-direction:column;gap:.85rem}.project-card-details-text{margin:0;font-size:.92rem;line-height:1.75;opacity:.75}.project-card-details-empty{margin:0;font-size:.88rem;opacity:.38;font-style:italic}.project-card-extra-images{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.4rem}.project-card-extra-img{width:260px;height:180px;border-radius:6px;object-fit:cover;cursor:zoom-in}.img-lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000e0;display:flex;align-items:center;justify-content:center;cursor:zoom-out}.img-lightbox-overlay img{max-width:92vw;max-height:90vh;object-fit:contain;border-radius:6px;box-shadow:0 8px 48px #000000b3}.platforms-section,.protocols-section,.design-section,.languages-section,.scripting-section,.tools-section,.portfolio-section,.resume-panel{border-top:1px solid transparent;border-image:linear-gradient(to right,transparent 0%,rgba(192,192,192,.35) 15%,rgba(192,192,192,.35) 85%,transparent 100%) 1}.platforms-heading,.protocols-heading,.design-heading,.languages-heading,.scripting-heading,.tools-heading,.portfolio-heading{color:var(--text-primary);opacity:1;margin-top:50px;margin-bottom:50px}.tools-section{margin-top:2.5rem;display:flex;flex-direction:column;align-items:center;overflow-x:hidden}.tools-heading,.portfolio-heading{font-size:2rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-align:center}.tools-carousel-wrapper{width:100%;display:flex;flex-direction:column;align-items:center;margin-top:3rem}.tools-carousel{position:relative;width:100%;height:580px;overflow:visible;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-y}.tools-carousel:active{cursor:grabbing}.tool-card{position:absolute;left:50%;top:0;width:16%;display:flex;flex-direction:column;align-items:center;will-change:transform,opacity,filter;border-radius:12px;overflow:hidden;padding:0 .8rem 1.4rem;transform-origin:top center;background:linear-gradient(to bottom,transparent 0%,transparent 50%,rgba(192,192,192,.07) 68%)}.tool-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:inherit;padding:1px;background:linear-gradient(to bottom,transparent 0%,transparent 50%,var(--border-color) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.tool-card-image{width:100%;height:200px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.tool-card-image img{width:144px;height:144px;object-fit:contain}.tool-card-name{margin:1.6rem 0 .7rem;font-size:2rem;font-weight:700;letter-spacing:.03em;text-align:center;line-height:1}.tool-card-bullets{margin:0;padding:0 0 0 .8rem;font-size:.75rem;line-height:1.6;opacity:.72}.tools-carousel-wrapper .carousel-indicators{margin-top:1.8rem}.portfolio-section{margin-top:2.5rem;margin-bottom:3rem;display:flex;flex-direction:column}.portfolio-projects{display:flex;flex-direction:column;gap:3.5rem}.portfolio-project{display:flex;flex-direction:column;gap:1.2rem}.portfolio-project-name{margin:0;font-size:1.3rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-align:center;color:var(--text-primary);opacity:.9}.portfolio-scroll-strip{width:100%;height:200px;overflow:hidden;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-y;-webkit-mask-image:linear-gradient(to right,transparent 0%,black 10%,black 90%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,black 10%,black 90%,transparent 100%);transition:height .32s cubic-bezier(.25,.46,.45,.94)}.portfolio-scroll-strip:active{cursor:grabbing}.portfolio-scroll-strip--expanded{height:420px}.portfolio-scroll-track{display:flex;gap:1rem;width:max-content;align-items:center;will-change:transform}.portfolio-scroll-img{height:184px;width:auto;border-radius:8px;object-fit:cover;flex-shrink:0;cursor:zoom-in;transition:height .32s cubic-bezier(.25,.46,.45,.94),opacity .32s ease}.portfolio-scroll-img--focused{height:400px;cursor:zoom-out;border-radius:10px}.portfolio-scroll-img--dimmed{opacity:.25}.portfolio-scroll-empty{width:100%;height:200px;display:flex;align-items:center;justify-content:center;font-size:.85rem;opacity:.3;letter-spacing:.06em;border:1px dashed var(--border-color);border-radius:8px}.portfolio-description{margin:0;font-size:.92rem;line-height:1.75;opacity:.78;max-width:72ch}.portfolio-details{display:flex;flex-direction:column;gap:.6rem;margin-top:.75rem;max-width:72ch}.portfolio-details-text{margin:0;font-size:.88rem;line-height:1.75;opacity:.6}@media (max-width: 640px){.landing-title{font-size:clamp(2.2rem,12vw,3.25rem)}.landing-nav{gap:1rem}.content-shell{width:calc(100% - 1rem);margin:0 auto;padding:.85rem}.resume-viewer{min-height:320px}.platforms-carousel{height:500px}.platform-card{width:60%}.protocols-carousel{height:360px}.protocol-card{width:42%}.languages-carousel{height:600px}.language-card{width:48%}.design-card,.scripting-card{flex-direction:column}.scripting-card-image,.design-card-image{width:100%;min-height:180px}}
