@font-face{font-family:Everett;src:url(/Everett-Medium.otf)format("opentype");font-weight:500;font-style:normal}:root{--void:#0e0e0e;--bg:#1c1c1c;--text:#dedac5;--muted:#6b685f;--accent:#6a32c9;--media-border-w:clamp(1px, .12vw, 2px);--content-max:72rem;--content-pad:clamp(1rem, 4vw, 3rem);--section-pad:clamp(2.5rem, 6vw, 5rem);--space-1:clamp(.4rem, .8vw, .7rem);--space-2:clamp(.7rem, 1.2vw, 1.1rem);--space-3:clamp(1rem, 1.8vw, 1.6rem);--space-4:clamp(1.4rem, 2.6vw, 2.2rem);--space-5:clamp(1.8rem, 3.4vw, 3rem);--space-6:clamp(2.4rem, 4.6vw, 4rem);--font-sans:Helvetica, Arial, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);margin:0;line-height:1.5}img,svg{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:100%;display:block}a{color:inherit;text-decoration:none}a:hover{color:var(--accent-2)}.page{min-height:100svh}.project-page-view{flex-direction:column;min-height:100svh;display:flex}body.is-transition-lock{overflow:hidden}.site-transition{z-index:9999;pointer-events:none;visibility:hidden;grid-template-rows:repeat(3,1fr);display:grid;position:fixed;inset:0}.site-transition-band{will-change:transform;transform:translate(100%)}.site-transition-band:first-child{background:var(--text)}.site-transition-band:nth-child(2){background:var(--muted)}.site-transition-band:nth-child(3){background:var(--bg)}.site-transition.is-active{visibility:visible}.project-page-view>main{flex-direction:column;flex:1 0 auto;display:flex}.not-found-heading{flex:1 0 auto;justify-content:center;align-items:center;display:flex}.not-found-heading .marquee-heading{min-height:100%}.frame{width:min(100%, var(--content-max));padding-inline:var(--content-pad);margin-inline:auto}.section{padding-block:var(--section-pad)}.stack{gap:var(--space-3);flex-direction:column;display:flex}.cluster{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.landing .frame{justify-content:center;display:flex}.hero{--hero-u:clamp(.72rem, 1.18vw, 1.32rem);color:var(--text);justify-content:center;align-items:center;gap:calc(var(--hero-u) * 3);text-align:center;flex-direction:column;line-height:1;display:flex}.hero-greeting{font-family:Helvetica,Arial,sans-serif;font-size:calc(var(--hero-u) * 4);letter-spacing:calc(var(--hero-u) * -.045);margin:0;line-height:.95}.hero-description{font-weight:700;font-size:calc(var(--hero-u) * 2);letter-spacing:calc(var(--hero-u) * -.045);margin:0;line-height:1.05}.hero-description b{color:var(--accent);font-weight:700}.site-header{--hd-u:clamp(.78rem, .7vw + .35rem, 1.18rem);--hd-h:calc(var(--hd-u) * 2.75);--hd-link-size:calc(var(--hd-h) * .56);--hd-letter:calc(var(--hd-u) * -.02);z-index:32;height:var(--hd-h);background:var(--text);color:var(--bg);border-bottom:var(--media-border-w) solid var(--muted);text-transform:uppercase;letter-spacing:var(--hd-letter);font-family:Helvetica,Arial,sans-serif;font-weight:700;position:sticky;top:0}.nav{background:var(--text);justify-content:space-between;align-items:center;width:100%;height:100%;padding-block:0;display:flex;position:relative}.brand{height:100%;font-weight:700;font-size:var(--hd-link-size);color:var(--bg);z-index:3;background:0 0;align-items:center;gap:.5rem;padding-inline:clamp(.6rem,1.2vw,1.4rem);line-height:1.05;display:inline-flex;position:relative}.brand-name{letter-spacing:inherit}.brand-sep{color:var(--muted)}.nav-links{height:100%;color:var(--text);font-size:var(--hd-link-size);align-items:center;margin-left:auto;line-height:.9;display:inline-flex}.nav-links a{height:100%;color:var(--bg);z-index:1;isolation:isolate;background:0 0;flex:none;align-items:center;padding-inline:clamp(.6rem,1.2vw,1.4rem);display:inline-flex;position:relative}.nav-toggle{cursor:pointer;z-index:3;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:none;justify-content:center;align-items:center;height:100%;padding-inline:clamp(.6rem,1.2vw,1.4rem);display:none;position:relative}.nav-toggle img{width:auto;height:75%}.nav-toggle{transition:transform .333s}.nav-toggle:focus{outline:none}.nav-toggle:focus-visible{outline:2px solid var(--muted);outline-offset:-2px}.nav-links a:not(.btn){transition:color .2s}body[data-scroll-dir=down]{--nav-fill-origin:bottom;--nav-fill-origin-active:top}body[data-scroll-dir=up]{--nav-fill-origin:top;--nav-fill-origin-active:bottom}.nav-links a:not(.btn):after{content:"";background:var(--bg);transform-origin:var(--nav-fill-origin,bottom);z-index:-1;transition:transform .35s ease-out;position:absolute;inset:0;transform:scaleY(0)}.nav-links a:not(.btn).is-active{color:var(--text)}.nav-links a:not(.btn).is-active:after{transform-origin:var(--nav-fill-origin-active,top);transform:scaleY(1)}.site-header a{color:var(--bg)}.site-header a:hover{font-style:oblique}.site-header .btn{background:var(--accent);color:var(--text);letter-spacing:inherit;border-color:#0000;flex:none;align-self:stretch;align-items:center;width:auto;height:100%;padding-block:0;padding-inline:clamp(.9rem,1.2vw,1.4rem);font-weight:700;display:inline-flex}.btn{color:var(--text);background:0 0;align-items:center;gap:.5rem;padding:.55rem 1.1rem;display:inline-flex}.btn.primary{background:var(--accent);color:#fff;border-color:#0000}.btn.small{padding:.35rem .8rem}.landing .title{letter-spacing:-.02em;color:var(--accent-2);margin:0;font-size:clamp(2.2rem,5.6vw,4.4rem);line-height:1.05}.subtitle{color:var(--muted);max-width:62ch;margin:0;font-size:clamp(1rem,2.2vw,1.25rem)}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--accent);margin:0;font-size:.75rem}.section-heading{padding-block:0}.section-heading .frame{width:100%;max-width:none;padding-inline:0}.marquee-heading{justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.marquee-track{white-space:nowrap;pointer-events:none;justify-content:flex-start;align-items:center;gap:0;width:max-content;height:100%;animation:120s linear infinite marquee-left;display:flex;position:absolute;top:0;left:0}.marquee-heading.right .marquee-track{justify-content:flex-end;animation-name:marquee-right;left:auto;right:0}.marquee-row{align-items:center;gap:clamp(.75rem,1vw,1.25rem);display:flex}.marquee-track span{text-transform:uppercase;letter-spacing:-.06em;word-spacing:.12em;color:#0000;-webkit-text-stroke:clamp(.5px, .07vw, 2px) var(--muted);font-family:Helvetica,Arial,sans-serif;font-size:clamp(1.6rem,4.4vw,3.4rem);font-weight:700}.marquee-title{z-index:1;text-transform:uppercase;letter-spacing:-.02em;color:var(--accent);background:linear-gradient(to left, transparent 0%, var(--bg) 6%, var(--bg) 94%, transparent 100%);margin:0;padding-inline:clamp(1rem,3vw,2.4rem);font-family:Helvetica,Arial,sans-serif;font-size:clamp(2.4rem,6.6vw,5rem);position:relative}@keyframes marquee-left{0%{transform:translate(0%)}to{transform:translate(-33.3%)}}@keyframes marquee-right{0%{transform:translate(0%)}to{transform:translate(33.3%)}}.section-title{letter-spacing:-.02em;color:var(--accent);margin:0;font-size:clamp(2rem,6vw,4rem)}.project-list{gap:0}.project-band{padding-block:var(--space-2);position:relative}.project-band:before{content:"";background-color:var(--text);transform-origin:100%;z-index:0;pointer-events:none;margin-left:-50vw;margin-right:-50vw;transition:transform .25s ease-out;position:absolute;inset:0 50%;transform:scaleX(0)}.project-band.is-hovered:before{transform-origin:0;transform:scaleX(1)}.project-card{z-index:1;gap:var(--space-3);cursor:pointer;aspect-ratio:4;align-items:stretch;width:min(100%,68rem);margin-inline:auto;display:flex;position:relative;overflow:hidden}.project-media{aspect-ratio:16/9;border:var(--media-border-w) solid var(--text);flex:none;align-self:stretch;width:auto;height:100%;position:relative;overflow:hidden}.project-img{object-fit:cover;width:100%;height:100%;transition:opacity .25s ease-in-out;position:absolute;inset:0}.project-img-static{opacity:1}.project-img-gif,.project-card:hover .project-img-static,.project-band.is-hovered .project-img-static{opacity:0}.project-card:hover .project-img-gif,.project-band.is-hovered .project-img-gif{opacity:1}.project-body{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.project-tag{border-left:1px solid var(--text);border-bottom:1px solid var(--text);letter-spacing:.1em;text-transform:uppercase;background-color:var(--bg);color:var(--text);padding:.2rem .4rem;font-size:.7rem;font-weight:700;transition:background-color .25s ease-in-out,color .25s ease-in-out;display:inline-flex;position:absolute;top:0;right:0}.project-card:hover .project-tag,.project-band.is-hovered .project-tag{background-color:var(--text);color:var(--bg);border-left-color:var(--bg);border-bottom-color:var(--bg)}.project-card:hover .project-media,.project-band.is-hovered .project-media{border-color:var(--bg)}.project-card:hover .project-title,.project-band.is-hovered .project-title{color:var(--bg)}.project-title{color:var(--accent-2);text-transform:uppercase;margin:0;font-size:clamp(1.7rem,3.5vw,2.8rem);line-height:1;transition:color .25s ease-in-out}.project-meta{color:var(--muted);letter-spacing:-.025em;word-spacing:.25em;text-transform:uppercase;margin-top:auto;margin-bottom:0;font-size:clamp(1rem,2vw,1.5rem);font-weight:600}.skills-row{flex-wrap:wrap;display:flex}.skill-card-programming,.skill-card-software{flex:0 0 50%}.skill-card-graphics{flex:0 0 100%;order:3}.skill-card-software{order:2}.skill-card{padding:var(--space-1) 0 var(--space-1) 0;justify-content:center;display:flex}.skill-card-programming{justify-content:flex-start}.skill-card-software{justify-content:flex-end}.skill-card-graphics{justify-content:center}.skill-card-content{align-items:flex-start;gap:calc(var(--space-1) * .5);width:fit-content}.skill-card h3,.skill-card .skill-list{align-self:flex-start}.skill-card h3{color:var(--accent);text-transform:uppercase;font-family:"Everett", var(--font-sans);letter-spacing:-.05em;margin:0;font-size:clamp(.85rem,1.125vw,1.5rem);font-weight:500}.list{margin:0;padding-left:1.2rem;display:grid}.skill-list{gap:calc(var(--space-1) * .33);padding-left:0;list-style:none}.skill-list li{--skill-u:clamp(.72rem, 1.18vw, 1.32rem);align-items:baseline;column-gap:calc(var(--skill-u) * .7);color:var(--text);font-family:var(--font-sans);font-size:calc(var(--skill-u) * 2);letter-spacing:calc(var(--skill-u) * -.045);grid-template-columns:auto 1fr;font-weight:700;line-height:1.05;display:grid}.skill-list li:before{content:"→";color:var(--accent);font-family:"Everett", var(--font-sans);-webkit-user-select:none;user-select:none;font-size:1em;font-weight:500;line-height:1}.about-text{--about-u:clamp(.72rem, 1.18vw, 1.32rem);--about-gap:calc(var(--about-u) * 1);font-size:calc(var(--about-u) * 2);letter-spacing:calc(var(--about-u) * -.045);color:var(--text);font-weight:700;line-height:1.05}.about-text p{margin:0 0 var(--about-gap)}.about-bottom{clear:both;margin:0}.about-text b{color:var(--accent);font-weight:inherit}.about-image{float:right;aspect-ratio:1;width:clamp(12rem,20vw,21rem);margin:0 0 var(--about-gap) var(--about-gap);border:var(--media-border-w) solid var(--accent);object-fit:cover;display:block}.contact-actions{justify-content:space-between;align-items:stretch;gap:var(--space-5);display:flex}.contact-actions .btn{aspect-ratio:1;flex:1 1 0;justify-content:center;min-height:clamp(8rem,18vw,12rem);padding:0}#footer.section{border-top:var(--media-border-w) solid var(--muted);background-color:var(--void);color:var(--muted);text-transform:uppercase;letter-spacing:-.01em;padding-block:calc(var(--section-pad) * .5);font-size:clamp(.6rem,.45vw + .5rem,.85rem);font-weight:700}.footer-row{grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.footer-copyright{justify-self:start;margin:0}.footer-top{border:var(--media-border-w) solid var(--muted);color:var(--muted);justify-self:center}.footer-built{justify-self:end;margin:0}.footer-top:hover{color:var(--void);border:var(--media-border-w) solid var(--muted);background-color:var(--muted)}.contact-card{justify-content:center;align-items:center;gap:var(--space-2);letter-spacing:-.01em;border:var(--media-border-w) solid var(--text);background:0 0;flex-direction:column;font-weight:700;transition:background-color .2s;display:flex}.contact-icon{letter-spacing:-.02em;color:var(--text);font-size:clamp(3.2rem,6.5vw,5.2rem);line-height:1;transition:color .2s}.contact-label{letter-spacing:-.02em;color:var(--muted);text-transform:uppercase;font-size:clamp(1rem,1.8vw,1.4rem)}.contact-card:hover{background-color:var(--text)}.contact-card:hover .contact-icon{color:var(--bg)}.contact-card:has(.linkedin){padding-bottom:calc(1.25*clamp(3.2rem,6.5vw,5.2rem) - clamp(3.2rem,6.5vw,5.2rem))}.project-detail-main{flex:1 0 auto;padding-top:0}.project-detail-content{padding-top:calc(var(--section-pad) * .5);flex:1 0 auto}.project-detail-banner{aspect-ratio:16/4.5;isolation:isolate;background:color-mix(in srgb, var(--accent) 55%, var(--bg) 45%);border-bottom:var(--media-border-w) solid var(--text);border-left:var(--media-border-w) solid var(--text);border-right:var(--media-border-w) solid var(--text);width:100%;margin:0;position:relative;overflow:hidden}.project-detail-banner img{object-fit:cover;filter:grayscale()brightness(.9)contrast(1.05);mix-blend-mode:luminosity;width:100%;height:100%}.project-detail-page-title,.project-detail-heading{letter-spacing:-.05em;text-transform:uppercase;margin:0;font-family:Helvetica,Arial,sans-serif;font-size:clamp(2.2rem,5.5vw,4.6rem);line-height:.95}.project-detail-page-title{color:var(--text)}.project-detail-heading{color:var(--accent)}.project-detail-text,.project-detail-body p,.project-detail-body li{letter-spacing:calc(clamp(.72rem,1.18vw,1.32rem)/-22.2222);margin:0;font-size:calc(2*clamp(.72rem,1.18vw,1.32rem));font-weight:700;line-height:1.05}.project-detail-markdown{gap:var(--space-4);display:grid}.project-detail-markdown>:first-child{margin-top:0}.project-detail-markdown>:last-child{margin-bottom:0}.project-detail-markdown h1{font-size:calc(clamp(2.2rem,5.5vw,4.6rem))}.project-detail-markdown h2{font-size:calc(clamp(2.2rem,5.5vw,4.6rem)/1.25)}.project-detail-markdown h3{font-size:calc(clamp(2.2rem,5.5vw,4.6rem)/1.66667)}.project-detail-markdown p,.project-detail-markdown li{letter-spacing:calc(clamp(.72rem,1.18vw,1.32rem)/-22.2222);margin:0;font-size:calc(2*clamp(.72rem,1.18vw,1.32rem));font-weight:700;line-height:1.05}.project-detail-markdown ul,.project-detail-markdown ol{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.project-detail-markdown li{grid-template-columns:auto 1fr;align-items:baseline;column-gap:.75rem;display:grid}.project-detail-markdown li:before{content:"→";color:var(--accent);font-family:"Everett", var(--font-sans);font-weight:500}.project-detail-markdown img{border:var(--media-border-w) solid var(--text);object-fit:cover;width:100%;height:auto}.project-detail-markdown a{color:var(--accent)}.linkedin{font-size:calc(1.25*clamp(3.2rem,6.5vw,5.2rem))}@media (width<=900px){.landing.section{padding-block:calc(var(--section-pad) * 2)}.contact-actions{align-items:center;gap:var(--space-5);flex-direction:column}.contact-actions .btn{aspect-ratio:1;width:min(100%,24rem);min-height:clamp(8rem,18vw,12rem)}.project-card{aspect-ratio:auto;padding:0 var(--space-2) 0 var(--space-2);flex-direction:column}.project-media{width:100%;height:auto}.skills-row{align-items:stretch;gap:var(--space-4);flex-direction:column;width:fit-content;max-width:100%;margin-inline:auto}.skill-card-programming,.skill-card-graphics,.skill-card-software{order:initial;flex:0 auto;justify-content:flex-start}.skill-card{width:100%;max-width:100%;padding:0}.about-image{float:none;margin:0 auto var(--about-gap);width:min(100%,clamp(14rem,60vw,20rem))}.nav{z-index:3;background:var(--text);justify-content:space-between;padding-inline:0;position:relative}.nav-links{background:var(--text);z-index:2;visibility:hidden;pointer-events:none;flex-direction:column;align-items:stretch;height:auto;min-height:0;max-height:0;transition:max-height .333s,visibility 0s linear .333s;display:flex;position:absolute;top:100%;left:0;right:0;overflow:hidden}.nav-links.is-open{max-height:calc(100dvh - var(--hd-h));visibility:visible;pointer-events:auto;transition:max-height .333s}.nav-links a{width:100%;height:auto;padding-block:var(--space-2);justify-content:center}.nav-links .btn{text-align:center;justify-content:center;align-self:stretch;width:100%;height:auto;padding-block:.5rem}.site-header{--hd-h:calc(var(--hd-u) * 2.75);z-index:32}.footer-copyright,.footer-built{font-size:clamp(.52rem,.35vw + .42rem,.72rem)}.footer-top{padding-inline:.75rem}.project-detail-text,.project-detail-body p,.project-detail-body li,.project-detail-markdown p,.project-detail-markdown li{font-size:calc(1.75*clamp(.72rem,1.18vw,1.32rem))}.nav-toggle{display:inline-flex}}
