@font-face{font-family:redaction_bold;src:url(/fonts/Redaction-Bold.woff2)}@font-face{font-family:redaction_bold_10;src:url(/fonts/Redaction_10-Bold.woff2)}@font-face{font-family:redaction_bold_20;src:url(/fonts/Redaction_20-Bold.woff2)}@font-face{font-family:redaction_bold_35;src:url(/fonts/Redaction_35-Bold.woff2)}@font-face{font-family:redaction_bold_50;src:url(/fonts/Redaction_50-Bold.woff2)}@font-face{font-family:redaction_bold_70;src:url(/fonts/Redaction_70-Bold.woff2)}@font-face{font-family:redaction_bold_100;src:url(/fonts/Redaction_100-Bold.woff2)}body{color:#fff;background:#000;justify-content:center;align-items:end;height:100vh;margin:0;position:relative;overflow-x:clip}section{min-height:100vh}h1{color:#fff;letter-spacing:0;text-transform:uppercase;white-space:nowrap;margin:0;padding:0;font-family:neue-haas-grotesk-text,sans-serif;font-size:16.6667vw;font-style:normal;font-weight:900;line-height:.95}#intro{position:relative}#hi1,#hi2{position:absolute;bottom:0;left:0}#hi2{opacity:0}.char{text-align:center;display:inline-block;overflow:visible}p{color:#fff;font-family:neue-haas-grotesk-display,sans-serif;font-size:30px;font-style:normal;font-weight:400}.about{justify-content:flex-end;align-items:center;padding:0 4vw;display:flex;position:relative;overflow:hidden}.about-text{z-index:2;opacity:0;visibility:hidden;width:30%;position:relative}@media (max-width:1024px){.about-text{width:50%}}@media (max-width:600px){.about-text{width:100%}}.about-camp{z-index:2;pointer-events:none;opacity:0;align-items:flex-end;gap:.5rem;transition:opacity .8s .2s;display:flex;position:absolute;bottom:5vh;left:4vw}.about-camp pre{color:#fff;white-space:pre;margin:0;padding:0;font-family:monospace;font-size:20px;line-height:1.3}@media (max-width:1024px){.about{flex-direction:column;justify-content:center;align-items:flex-start;gap:2.5rem;padding:12vh 4vw 8vh}.about-camp{opacity:1;position:static}.about-camp pre{font-size:14px}}@media (max-width:600px){.about-camp pre{font-size:12px}}.ascii-field{z-index:1;pointer-events:none;will-change:transform;position:absolute;inset:0}.ascii-glyph{color:#fff;pointer-events:none;opacity:var(--opacity,.6);font-family:monospace;font-size:13px;position:absolute}#scroll-hint{color:#555;pointer-events:none;opacity:0;z-index:9999;letter-spacing:.02em;font-family:neue-haas-grotesk-display,sans-serif;font-size:16px;font-style:italic;font-weight:100;transition:opacity .6s;position:fixed;bottom:2rem;right:2rem}#scroll-hint.visible{opacity:1}a{color:#fff}.posts-section{min-height:auto;padding:12vh 4vw 10vh}.posts-section-title{text-transform:uppercase;color:#fff;letter-spacing:-.02em;margin:0 0 6vh;padding:0;font-family:neue-haas-grotesk-text,sans-serif;font-size:clamp(2.5rem,7vw,6rem);font-style:normal;font-weight:900;line-height:1}.portfolio-grid{grid-template-columns:repeat(auto-fill,minmax(500px,1fr));gap:2rem;display:grid}.portfolio-card{color:#fff;opacity:0;border-radius:4px;text-decoration:none;transition:opacity .6s,transform .6s;display:block;position:relative;overflow:hidden;transform:translateY(24px)}.portfolio-card--visible{opacity:1;transform:translateY(0)}.portfolio-card-media{aspect-ratio:16/9;background:#111;width:100%;position:relative;overflow:hidden}.portfolio-card-media:before{content:"";z-index:0;background:linear-gradient(90deg,#111 0%,#1c1c1c 50%,#111 100%) 0 0/200% 100%;transition:opacity .4s;animation:1.6s ease-in-out infinite card-shimmer;position:absolute;inset:0}.portfolio-card-media.img-loaded:before{opacity:0;pointer-events:none}@keyframes card-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.portfolio-card-video{object-fit:cover;z-index:1;opacity:0;width:100%;height:100%;transition:transform .6s,opacity .5s;position:relative}.portfolio-card-media.img-loaded .portfolio-card-video{opacity:.85}.portfolio-card-video--playing{transform:scale(1.02);opacity:1!important}.portfolio-card-overlay{z-index:2;background:linear-gradient(#0000 50%,#000000b3 100%);transition:opacity .4s;position:absolute;inset:0}.portfolio-card:hover .portfolio-card-overlay{opacity:.4}.portfolio-card-info{padding:1.25rem .25rem}.portfolio-card-title{margin-bottom:.6rem;font-family:neue-haas-grotesk-text,sans-serif;font-size:1.75rem;font-weight:700;line-height:1.2}.portfolio-card-description{color:#888;margin:0 0 1.1rem;font-family:neue-haas-grotesk-display,sans-serif;font-size:1.1rem;font-weight:400;line-height:1.6}.portfolio-card-arrow{color:#555;letter-spacing:.04em;text-transform:uppercase;font-family:neue-haas-grotesk-display,sans-serif;font-size:.85rem;transition:color .2s}.portfolio-card:hover .portfolio-card-arrow{color:#fff}@media (max-width:600px){.portfolio-grid{grid-template-columns:1fr}}.skills-section{min-height:auto;padding:12vh 4vw 10vh;position:relative;overflow:hidden}.skills-section-title{text-transform:uppercase;color:#fff;letter-spacing:-.02em;margin:0 0 6vh;padding:0;font-family:neue-haas-grotesk-text,sans-serif;font-size:clamp(2.5rem,7vw,6rem);font-style:normal;font-weight:900;line-height:1}.skills-field{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:1.2rem 2rem;display:flex}.skill-tag{color:#fff;opacity:0;white-space:nowrap;letter-spacing:.03em;font-family:monospace;font-size:clamp(1rem,2.5vw,2rem)}.skill-ascii{color:#444;-webkit-user-select:none;user-select:none;font-size:clamp(.8rem,1.8vw,1.4rem)}.post-page{max-width:780px;min-height:100vh;margin:0 auto;padding:6vh 4vw 10vh}.post-back{color:#555;letter-spacing:.02em;margin-bottom:4rem;font-family:neue-haas-grotesk-display,sans-serif;font-size:.9rem;font-weight:400;text-decoration:none;transition:color .2s;display:inline-block}.post-back:hover{color:#fff}.post-content h1,.post-content h2,.post-content h3{color:#fff;text-transform:none;letter-spacing:-.01em;margin:0 0 1rem;padding:0;font-family:neue-haas-grotesk-text,sans-serif;font-weight:700;line-height:1.15}.post-content h1{margin-bottom:2.5rem;font-size:clamp(2.2rem,5vw,3.8rem)}.post-content h2{margin-top:3.5rem;font-size:1.75rem}.post-content h3{margin-top:2.5rem;font-size:1.3rem}.post-content p{color:#ccc;margin:0 0 1.6rem;font-family:neue-haas-grotesk-display,sans-serif;font-size:1.25rem;font-weight:400;line-height:1.8}.post-content a{color:#fff;text-underline-offset:3px;text-decoration:underline}.post-content ul,.post-content ol{color:#ccc;margin:0 0 1.6rem;padding-left:1.5rem;font-family:neue-haas-grotesk-display,sans-serif;font-size:1.25rem;line-height:1.8}.post-content li{margin-bottom:.4rem}.post-content strong{color:#fff;font-weight:700}.post-content em{color:#aaa;font-style:italic}.post-content hr{border:none;border-top:1px solid #222;margin:3rem 0}.post-content code{color:#ccc;background:#111;border-radius:2px;padding:.15em .4em;font-family:monospace;font-size:.9rem}.post-content pre{background:#0d0d0d;border:1px solid #222;margin:0 0 1.4rem;padding:1.5rem;overflow-x:auto}.post-content pre code{background:0 0;padding:0}.post-content img{border-radius:4px;width:100%;height:auto;margin:0 0 1.6rem;display:block}.post-content iframe{aspect-ratio:16/9;border:none;border-radius:4px;width:100%;height:auto;margin:0 0 1.6rem;display:block}.site-footer{padding:12vh 4vw 10vh}.footer-heading{color:#fff;letter-spacing:-.02em;text-transform:uppercase;margin:0 0 3rem;padding:0;font-family:neue-haas-grotesk-text,sans-serif;font-size:clamp(2.5rem,7vw,6rem);font-weight:900;line-height:1}.footer-links{flex-direction:column;gap:1.1rem;margin:0;padding:0;list-style:none;display:flex}.footer-link{color:#fff;align-items:center;gap:1rem;font-family:neue-haas-grotesk-display,sans-serif;font-size:1.3rem;font-weight:600;text-decoration:none;transition:opacity .2s;display:inline-flex}.footer-link:hover{opacity:.6}.footer-link svg{flex-shrink:0}#page-loader{z-index:99999;pointer-events:none;opacity:0;width:100%;height:2px;transition:opacity .15s;position:fixed;top:0;left:0;overflow:hidden}#page-loader.active{opacity:1}#page-loader:before,#page-loader:after{content:"";background:#fff;height:100%;animation:1.6s cubic-bezier(.4,0,.2,1) infinite loader-bar;position:absolute;top:0}#page-loader:after{animation-delay:.8s}@keyframes loader-bar{0%{left:0%;right:100%}30%{left:0%;right:35%}70%{left:35%;right:0%}to{left:100%;right:-5%}}@keyframes page-slide-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.page-enter-slide{animation:.5s both page-slide-in}.page-exit{opacity:0!important;transition:opacity .35s!important}
