body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg:#0b1120;--bg-alt:#111827;--panel:#020617;--accent:#38bdf8;--text-main:#e5e7eb;--text-soft:#9ca3af;--border-subtle:#1f2937}*,:after,:before{box-sizing:border-box}body{background:radial-gradient(circle at top left,#0f172a 0,#020617 45%,#020617 100%);color:#e5e7eb;color:var(--text-main);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0}.app-root{display:flex;flex-direction:column;min-height:100vh}.top-nav{align-items:center;background:linear-gradient(90deg,#020617,#111827);border-bottom:1px solid #1f2937;border-bottom:1px solid var(--border-subtle);display:flex;padding:.9rem 2.5rem}.logo{color:#e5e7eb;color:var(--text-main);font-size:.95rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.nav-links{display:flex;gap:.5rem;margin-left:1.5rem}.nav-link{border:none;border-bottom:2px solid #0000;border-radius:0;color:#9ca3af;color:var(--text-soft);cursor:pointer;font-size:1.1rem;letter-spacing:.16em;padding:.6rem 1.1rem .4rem;text-transform:uppercase}.nav-link,.nav-link:hover{background:#0000;text-decoration:none}.nav-link:hover{color:#e5e7eb;color:var(--text-main)}.nav-link.active{background:#0000;border-bottom-color:#38bdf8;border-bottom-color:var(--accent);color:#38bdf8;color:var(--accent)}.nav-actions{display:flex;gap:.75rem;margin-left:auto}.nav-actions a{align-items:center;color:#9ca3af;color:var(--text-soft);display:inline-flex;font-size:1.1rem;font-weight:600;letter-spacing:.16em;padding:.6rem 1.1rem .4rem;text-decoration:none;text-transform:uppercase}.nav-actions a:hover{color:#e5e7eb;color:var(--text-main)}@media (max-width:768px){.top-nav{flex-wrap:wrap;gap:.5rem}.nav-links{justify-content:center;order:3;width:100%}.nav-actions{justify-content:flex-end;width:100%}}.main-shell{margin:0 auto;max-width:100vw;padding:1.25rem 0 2rem}@media (max-width:768px){.main-shell{padding:.9rem 0 1.6rem}}.page{background:#0000;border:none;padding:0 1.5rem}@media (max-width:768px){.page{padding:0 .8rem}}.page-title{font-size:1.4rem;margin:0 0 .25rem}.page-subtitle{color:#9ca3af;color:var(--text-soft);font-size:.9rem;margin:0 0 .9rem}.store-featured-section{margin:0 auto 2rem;max-width:90vw;width:90vw}.store-section-label{color:#9ca3af;color:var(--text-soft);font-size:.78rem;letter-spacing:.16em;margin-bottom:.4rem;text-transform:uppercase}.store-carousel{align-items:stretch;background:#111827;border:1px solid #000;border-radius:.25rem;box-shadow:0 22px 48px #000000b3;display:flex;min-height:460px;overflow:hidden;position:relative}.store-carousel-main{display:flex;flex:1 1}.store-carousel-image{background-position:50%;background-size:cover;flex:3.5 1}.store-carousel-info{background:radial-gradient(circle at top left,#1f2937 0,#020617 70%);display:grid;flex:2 1;grid-template-rows:auto 1fr auto;padding:1.3rem 1.4rem}.store-carousel-text{align-self:start}.store-carousel-title{font-size:1.5rem;margin:0 0 .4rem}.store-carousel-short{color:#9ca3af;color:var(--text-soft);font-size:1rem;margin:0}.store-carousel-tech{align-self:flex-end;text-align:right}.store-tech-label{color:#9ca3af;color:var(--text-soft);font-size:.78rem;letter-spacing:.16em;margin-bottom:.25rem;text-transform:uppercase}.store-tech-badges{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:flex-end}.store-tech-badge{background:#020617;border:1px solid #94a3b880;border-radius:999px;color:#e5e7eb;color:var(--text-main);font-size:.8rem;padding:.22rem .7rem}.store-carousel-arrow{align-items:center;background:#0000008c;border:none;color:#e5e7eb;color:var(--text-main);cursor:pointer;display:flex;font-size:2.1rem;height:90px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);width:40px}.store-carousel-arrow-left{left:0}.store-carousel-arrow-right{right:0}.store-carousel-arrow:hover{background:#000c}.store-carousel-dots{display:flex;gap:.3rem;justify-content:center;margin-top:.5rem}.store-carousel-thumbs{grid-gap:.6rem;align-self:center;display:grid;gap:.6rem;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);justify-self:center;max-width:360px;width:100%}.store-thumb-wrapper{aspect-ratio:4/3;background:#020617;border:1px solid #0f172ae6;border-radius:.35rem;overflow:hidden;width:100%}.store-thumb{display:block;height:100%;object-fit:cover;width:100%}@media (max-width:768px){.store-carousel-thumbs{flex-wrap:wrap}.store-thumb-wrapper{max-width:48%}}.store-dot{background:#94a3b8b3;border:none;border-radius:999px;cursor:pointer;height:11px;width:11px}.store-dot-active{background:#38bdf8;background:var(--accent)}@media (max-width:768px){.store-carousel{min-height:0}.store-featured-section{max-width:100%;width:100%}.store-carousel-main{flex-direction:column}.store-carousel-image{flex:none;height:220px}.store-carousel-info{align-items:flex-start;text-align:left}.store-carousel-tech{align-self:flex-start;text-align:left}}.section-title{font-size:1rem;margin:.75rem 0 .5rem}.grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.card,.featured-card{background:#020617;background:var(--panel);border:1px solid #1f2937;border:1px solid var(--border-subtle);border-radius:.75rem;box-shadow:0 12px 35px #0f172ab3;padding:.9rem}.featured-card{border-color:#38bdf866}.card-title,.featured-card h2{font-size:1rem;margin:0 0 .3rem}.card-text,.featured-card p{color:#9ca3af;color:var(--text-soft);font-size:.85rem;margin:.2rem 0 .4rem}.meta{color:#38bdf8;color:var(--accent);font-size:.75rem}.library-layout{align-items:stretch;display:flex;height:min(70vh,650px);margin-top:.75rem;margin-inline:auto;max-width:1500px;width:80vw}.library-list{border:1px solid #1f2937;border:1px solid var(--border-subtle);border-radius:.75rem 0 0 .75rem;border-right:none;display:flex;flex-direction:column;flex-shrink:0;width:260px}.library-detail,.library-list{background:#020617;overflow-y:auto;scrollbar-gutter:stable}.library-detail{border:1px solid #1f2937;border:1px solid var(--border-subtle);border-left:1px solid #000;border-radius:0 .75rem .75rem 0;flex:1 1}@media (max-width:900px){.library-layout{flex-direction:column;height:auto;max-width:100%}.library-detail,.library-list{border-radius:.75rem;width:100%}.library-detail{margin-top:.75rem;position:static}.library-detail-scroll{height:auto;position:static}}.library-list-header{border-bottom:1px solid #1f2937;border-bottom:1px solid var(--border-subtle);padding:.6rem .7rem}.library-list-title{color:#9ca3af;color:var(--text-soft);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase}.library-list-subtitle{color:#9ca3af;color:var(--text-soft);font-size:.75rem;margin-top:.15rem}.library-search-wrapper{border-bottom:1px solid #1f2937;border-bottom:1px solid var(--border-subtle);padding:.35rem .6rem .4rem}.library-search-input{background:#020617;border:1px solid #1f2937;border:1px solid var(--border-subtle);border-radius:999px;color:#e5e7eb;color:var(--text-main);font-size:.8rem;padding:.35rem .75rem;width:100%}.library-search-input::placeholder{color:#9ca3af;color:var(--text-soft)}.library-search-input:focus{border-color:#38bdf8;border-color:var(--accent);box-shadow:0 0 0 1px #38bdf880;outline:none}.library-list-items{flex:0 0 auto;min-height:0;padding:.4rem}.library-item{background:#0000;border:none;border-radius:.55rem;color:#e5e7eb;color:var(--text-main);cursor:pointer;margin-bottom:.2rem;padding:.55rem .6rem;text-align:left;width:100%}.library-item:hover{background:#94a3b81a}.library-item.active{background:#38bdf81f;border:1px solid #38bdf899}.library-item-title{font-size:.95rem}.library-empty{color:#9ca3af;color:var(--text-soft);font-size:.8rem;padding:.5rem .6rem}.game-detail-shell{display:block;min-height:100%}.game-hero{background-position:50%;background-size:cover;height:280px;position:relative}.game-hero:before{background:linear-gradient(180deg,#0f172a1a,#0f172ad9);content:"";inset:0;position:absolute}.game-hero-overlay{align-items:flex-end;display:flex;inset:0;padding:1.3rem;position:absolute}.game-hero-title{font-size:1.7rem;margin:0}@media (max-width:768px){.game-hero{height:230px}}.game-cta-row{align-items:center;background:linear-gradient(90deg,#020617,#0b1120);border-bottom:1px solid #1f2937;border-bottom:1px solid var(--border-subtle);display:flex;gap:1rem;padding:.8rem 1.3rem}.game-btn{border:none;border-radius:.45rem;cursor:pointer;font-size:.95rem;font-weight:700;letter-spacing:.14em;padding:.6rem 1.7rem;text-transform:uppercase}.game-btn-play{background:#22c55e;color:#022c22}.game-btn-play:hover{filter:brightness(1.05)}.game-btn-install{background:#0ea5e9;color:#0b1120}.game-btn-install:hover{filter:brightness(1.05)}.game-github-status{color:#9ca3af;color:var(--text-soft);font-size:.9rem}.status-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:.8rem;margin-left:.35rem;padding:.15rem .7rem}.status-public{background:#22c55e1a;border:1px solid #22c55e66;color:#4ade80}.status-private{background:#3b82f614;border:1px solid #3b82f666;color:#93c5fd}@media (max-width:768px){.game-cta-row{align-items:flex-start;flex-wrap:wrap}}.game-detail-body{padding:.9rem 1.3rem 1.1rem}.game-detail-main{margin-bottom:.75rem}.game-section-heading{color:#9ca3af;color:var(--text-soft);font-size:.9rem;letter-spacing:.16em;margin:0 0 .4rem;text-transform:uppercase}.project-description{color:#9ca3af;color:var(--text-soft);font-size:1rem;line-height:1.6}.game-detail-bottom{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:.5rem}.game-detail-block{min-width:180px}.library-tech-badges{display:flex;flex-wrap:wrap;gap:.35rem}.library-tech-badge{background:#020617;border:1px solid #94a3b880;border-radius:999px;color:#e5e7eb;color:var(--text-main);font-size:.8rem;padding:.22rem .7rem}.link-list{list-style:none;margin:.2rem 0 0;padding:0}.link-list li{font-size:.85rem;margin-bottom:.2rem}.link-list a{color:#38bdf8;color:var(--accent);text-decoration:none}.link-list a:hover{text-decoration:underline}.about-panel{background:#020617;border:1px solid #1f2937;border:1px solid var(--border-subtle);border-radius:.75rem;margin-top:.75rem;padding:1rem}.about-panel h2{margin-bottom:.4rem;margin-top:0}.about-panel p{color:#9ca3af;color:var(--text-soft);font-size:.9rem}.about-panel h3{font-size:.9rem;margin-bottom:.3rem;margin-top:.8rem}.bulleted-list{color:#9ca3af;color:var(--text-soft);font-size:.9rem;margin:.3rem 0 0;padding-left:1rem}.bulleted-list li{margin-bottom:.2rem}.resume-page{align-items:center;display:flex;flex-direction:column}.resume-viewer-container{background:#111827;border:1px solid #1f2937;border:1px solid var(--border-subtle);border-radius:.75rem;box-shadow:0 12px 35px #00000080;display:flex;flex-direction:column;height:80vh;margin-top:1rem;max-width:900px;padding:1rem;width:80vw}.resume-iframe{background:#000;border:none;border-radius:.5rem;flex:1 1;width:100%}.resume-download-btn{background:#38bdf8;background:var(--accent);border-radius:.5rem;color:#0b1120;font-size:.95rem;font-weight:600;letter-spacing:.1em;margin-top:1rem;padding:.6rem 1.2rem;text-align:center;text-decoration:none;text-transform:uppercase}.resume-download-btn:hover{filter:brightness(1.05)}.skill-section{margin-top:1.4rem}.skill-section-heading{color:#9ca3af;color:var(--text-soft);font-size:.95rem;letter-spacing:.16em;margin:0 0 .5rem;text-transform:uppercase}.store-skills-section{margin:1.8rem auto 0;max-width:90vw;width:90vw}.skills-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));margin-top:.75rem}.skill-card{align-items:center;background:radial-gradient(circle at top left,#111827 0,#020617 70%);border:1px solid #1f2937;border:1px solid var(--border-subtle);border-radius:.6rem;box-shadow:0 8px 20px #00000073;color:#e5e7eb;color:var(--text-main);display:flex;font-size:.9rem;height:64px;justify-content:center;padding:0 .9rem;text-align:center;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease}.skill-card:hover{background:radial-gradient(circle at top left,#1f2937 0,#020617 75%);border-color:#38bdf8b3;box-shadow:0 14px 32px #0f172ad9;transform:translateY(-2px)}@media (max-width:768px){.skills-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.skill-card{font-size:.85rem}}
/*# sourceMappingURL=main.89115347.css.map*/