.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--font-size-base: clamp(1rem, .34vw + .91rem, 1.19rem);--font-size-lg: clamp(1.2rem, .7vw + 1.2rem, 1.5rem);--font-size-xl: clamp(2.44rem, 2.38vw + 1.85rem, 3.75rem);--color-primary: 230, 230, 230;--color-secondary: 13, 13, 13;--color-accent: 153, 51, 0}html{scrollbar-color:rgb(var(--color-primary)) rgb(var(--color-secondary));scrollbar-width:thin}body::-webkit-scrollbar{width:1vw;max-width:10px}body::-webkit-scrollbar-track{background:rgb(var(--color-secondary))}body::-webkit-scrollbar-thumb{background:rgb(var(--color-primary))}*,*:before,*:after{box-sizing:border-box}html,body{min-height:100%}html{font-family:system-ui,sans-serif;font-size:var(--font-size-base);background-color:rgb(var(--color-secondary))}body{margin:0;background-color:rgb(var(--color-secondary))}h1{font-size:var(--font-size-xl);color:rgb(var(--color-primary));margin:0}h2{font-size:var(--font-size-lg);color:rgb(var(--color-primary));margin:0}code{font-family:Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace}a{color:rgb(var(--color-primary));text-decoration:none}p,small{color:rgb(var(--color-primary))}ul,li{list-style:none;padding:0;margin:0}.bg-secondary{background-color:rgb(var(--color-secondary))}.bg-accent{background-color:rgb(var(--color-accent))}.text-primary{color:rgb(var(--color-primary))}.text-accent{color:rgb(var(--color-accent))}.fill-primary{fill:rgb(var(--color-primary))}.fill-accent{fill:rgb(var(--color-accent))}.border-accent{border-color:rgb(var(--color-accent))}.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 2rem;flex-wrap:wrap}.page-header-left{display:flex;align-items:center;gap:1rem}.page-header h1{font-size:var(--font-size-lg)}.page-header-logo{display:inline-flex;transition:transform .3s}.page-header-logo:hover{transform:scale(1.1)}.page-header-touchmark{width:2rem;height:auto}.page-header-back{display:flex;align-items:center;gap:.5rem;font-size:var(--font-size-lg);font-weight:700;color:rgb(var(--color-primary));transition:color .3s,transform .3s}.page-header-back svg{width:.9rem;fill:rgba(var(--color-primary),.4);transition:fill .3s}.page-header-back:hover{transform:translate(-.25rem)}.page-header-back:hover svg{fill:rgb(var(--color-accent))}.page-header-nav{display:flex;gap:1.5rem;align-items:center}.page-header-nav a{color:rgba(var(--color-primary),.4);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;transition:color .3s}.page-header-nav a:hover{color:rgb(var(--color-accent))}.page-header-nav a.active{color:rgb(var(--color-primary))}.hero{min-height:100vh;background-color:rgb(var(--color-secondary));color:rgb(var(--color-primary));display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:2rem;position:relative;overflow:hidden}.hero-identity{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.hero-identity h1{font-size:clamp(1.75rem,2vw + 1rem,2.75rem);letter-spacing:.04em}.hero-tagline{font-size:clamp(.65rem,1.5vw,.8rem);letter-spacing:.15em;text-transform:uppercase;color:rgba(var(--color-primary),.5);margin:0;text-align:center}.hero-nav{display:flex;gap:2rem;align-items:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(var(--color-primary),.1)}.hero-nav a{color:rgba(var(--color-primary),.6);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;transition:color .3s}.hero-nav a:hover{color:rgb(var(--color-accent))}.hero-footer{padding-bottom:1.5rem}.social-links{display:flex;gap:1.5rem;align-items:center}.social-links a{display:inline-flex;transition:transform .3s}.social-links a:active{transform:scale(.9)}.social-links svg{fill:rgba(var(--color-primary),.3);transition:fill .3s}.social-links a:hover svg{fill:rgb(var(--color-accent))}.coming-soon-wrapper{display:flex;align-items:center;justify-content:center;min-height:60vh}.coming-soon-wrapper p{color:rgba(var(--color-primary),.4);font-size:.9rem;letter-spacing:.1em;text-transform:uppercase}.game-card{overflow:hidden;background-color:rgba(var(--color-primary),.03);color:rgb(var(--color-primary));position:relative;display:flex;flex-direction:column;border-radius:.75rem;border:1px solid rgba(var(--color-primary),.06);animation:card-enter .5s ease-out backwards;animation-delay:calc(var(--i, 0) * .1s)}.game-card a:after{content:"";position:absolute;inset:0}.game-card-media{height:16rem;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:1rem}.game-card-media img{max-width:100%;max-height:100%;height:auto;display:block;border-radius:.375rem}@media(min-width:640px){.game-card-media img{transition:transform .5s ease}.game-card:hover .game-card-media img{transform:scale(1.05)}}.game-card-body{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem 1.25rem}.game-card h2{font-size:1rem;text-align:center;border-bottom:2px solid rgb(var(--color-accent))}.game-card-genre{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(var(--color-primary),.4);margin:0}.game-card p{margin:0;text-align:center;line-height:1.5;font-size:.85rem}@media(min-width:640px){.game-card{transition:box-shadow .4s ease,border-color .4s ease}.game-card:hover{box-shadow:0 12px 30px -8px #99330026;border-color:rgba(var(--color-accent),.3)}}.game-tagline{font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(var(--color-primary),.4);margin:0 1rem 2rem}.game-video-wrapper{margin:1.5rem 0;border-radius:.5rem;overflow:hidden}.game-video-wrapper video{width:100%;display:block;border-radius:.5rem}.game-links{display:flex;gap:1rem;flex-wrap:wrap;margin:2rem 1rem}.game-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600;color:rgba(var(--color-primary),.6);padding:.5rem 1rem;border:1px solid rgba(var(--color-primary),.15);border-radius:.5rem;transition:color .3s,border-color .3s}.game-link svg{width:.9rem;fill:currentColor}.game-link:hover{color:rgb(var(--color-accent));border-color:rgba(var(--color-accent),.4)}.game-detail-img{width:100%;height:auto;display:block;border-radius:.5rem;margin:1.5rem 0}.app-install-cmd{background-color:rgba(var(--color-primary),.06);border:1px solid rgba(var(--color-primary),.1);border-radius:.5rem;padding:.75rem 1rem;margin:.5rem 1rem;overflow-x:auto}.app-install-cmd code{color:rgb(var(--color-primary));font-size:.9rem}.posts-section{min-height:100vh;padding:1rem;background-color:rgb(var(--color-secondary));display:flex;flex-direction:column;align-items:center;justify-content:space-between}.posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:2rem;margin:2rem 0;padding:0 1rem;max-width:72rem;width:100%}.post-card{overflow:hidden;background-color:rgba(var(--color-primary),.03);color:rgb(var(--color-primary));position:relative;display:flex;flex-direction:column;border-radius:.75rem;border:1px solid rgba(var(--color-primary),.06);animation:card-enter .5s ease-out backwards;animation-delay:calc(var(--i, 0) * .1s)}.post-card a:after{content:"";position:absolute;inset:0}.post-card-media{height:18rem;overflow:hidden}.post-card-media img{width:100%;height:100%;object-fit:cover;display:block}.post-card-body{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem 1.25rem 1.5rem}.post-card h2{font-size:1rem;text-align:center;border-bottom:2px solid rgb(var(--color-accent))}.post-card p{margin:0;text-align:center;line-height:1.5;font-size:.85rem}.post-card small{color:rgba(var(--color-primary),.4);font-size:.7rem}@media(min-width:640px){.post-card{filter:grayscale(100%);transition:box-shadow .4s ease,border-color .4s ease,filter .4s ease}.post-card:hover{filter:grayscale(0%);box-shadow:0 12px 30px -8px #99330026;border-color:rgba(var(--color-accent),.3)}.post-card-media img{transition:transform .5s ease}.post-card:hover .post-card-media img{transform:scale(1.05)}}@keyframes card-enter{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.post-card{animation:none}}.tag{font-size:.75rem;background-color:rgb(var(--color-accent));padding:.25rem .5rem;border-radius:9999px;color:rgb(var(--color-primary))}.tags-list{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.contact-link{padding:.5rem;display:flex;gap:.25rem;text-align:center;color:rgb(var(--color-primary));transition:text-decoration .5s}.contact-link:hover{text-decoration:underline}.post-wrapper{margin:0 auto;max-width:42rem;padding:1rem 1.5rem;color:rgb(var(--color-primary))}.post-wrapper article{display:flex;flex-direction:column;animation:post-enter .6s ease-out both;animation-delay:.15s}@keyframes post-enter{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.post-wrapper article{animation:none}}.post-back{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:rgba(var(--color-primary),.4);margin:0 1rem;transition:color .3s,transform .3s}.post-back svg{width:.65rem;fill:currentColor}.post-back:hover{color:rgb(var(--color-accent));transform:translate(-.2rem)}.post-title{font-size:clamp(1.5rem,2vw + 1rem,2.25rem);margin:1.5rem 1rem .5rem}.post-header{margin:0 1rem 1.5rem;border-bottom:1px solid rgba(var(--color-accent),.4);padding-bottom:1rem}.post-header-meta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 2rem}.post-header-meta h2{font-size:.85rem;font-weight:400;color:rgba(var(--color-primary),.5);letter-spacing:.04em}.back-link{margin-top:2rem;margin-bottom:2rem;width:fit-content;padding:.25rem .5rem;font-size:1.25rem;color:rgb(var(--color-primary));transition:transform .3s;display:flex;gap:.25rem;align-items:center}.back-link:hover{transform:translate(-.5rem)}.paragraph{text-indent:2rem;font-size:1.05rem;line-height:1.75;margin:0 1rem;padding:.75rem 0;color:rgba(var(--color-primary),.75)}.image-figure{margin:1.5rem 0}.image-figure img{margin:0 auto;display:block;max-width:100%;height:auto;border-radius:.5rem}.image-figure figcaption{margin:.5rem auto 0;color:rgba(var(--color-primary),.45);font-size:.8rem;padding:0;width:fit-content;text-align:center}.row-of-images{display:flex;gap:.75rem;margin:1.5rem 0}.row-of-images .image-figure{margin:0}.callout{color:rgb(var(--color-accent));font-size:1.3rem;font-weight:600;padding:1rem 1.5rem;margin:2rem 0;border-left:3px solid rgb(var(--color-accent));background-color:rgba(var(--color-accent),.06);border-radius:0 .5rem .5rem 0;line-height:1.5}.external-link{color:rgb(var(--color-accent));font-weight:600;border-bottom:1px dotted rgb(var(--color-accent));transition:border-bottom-style .2s}.external-link:hover{border-bottom-style:solid}.post-footer{display:flex;flex-direction:column;align-items:center;gap:2rem;border-top:1px solid rgba(var(--color-accent),.4);margin-top:3rem;padding:2rem 1rem}.post-footer-nav{display:flex;justify-content:space-between;width:100%;gap:1rem}.post-footer-link{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:rgba(var(--color-primary),.5);transition:color .3s,transform .3s;max-width:45%}.post-footer-link svg{width:.6rem;fill:currentColor;flex-shrink:0}.post-footer-link:hover{color:rgb(var(--color-accent))}.post-footer-prev:hover{transform:translate(-.2rem)}.post-footer-next{margin-left:auto;text-align:right}.post-footer-next:hover{transform:translate(.2rem)}.post-footer-all{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:rgba(var(--color-primary),.4);transition:color .3s,transform .3s}.post-footer-all svg{width:.6rem;fill:currentColor}.post-footer-all:hover{color:rgb(var(--color-accent));transform:translate(-.2rem)}.resume-page{max-width:40rem;margin:0 auto;padding:1rem 2rem 4rem}.resume-summary{font-size:var(--font-size-lg);opacity:.7;margin:0 0 3rem}.resume-timeline{display:flex;flex-direction:column;gap:3rem}.resume-company{display:flex;flex-direction:column;gap:1rem;border-left:2px solid rgb(var(--color-accent));padding-left:1.5rem}.resume-company-header{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}.resume-company-header h2{font-size:1.75rem;font-weight:700}.resume-dates{color:rgba(var(--color-primary),.5);font-size:.8rem}.resume-description{margin:0;opacity:.7;line-height:1.6}.resume-roles{display:flex;flex-direction:column;gap:.75rem}.resume-role h3{color:rgb(var(--color-primary));font-size:1rem;font-weight:600;margin:0}.resume-role small{color:rgba(var(--color-primary),.4);font-size:.75rem}.resume-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.resume-tag{background-color:rgb(var(--color-accent));border-radius:9999px;padding:.25rem .5rem;color:rgb(var(--color-secondary));font-size:.7rem;font-weight:700}
