@import "https://fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323:wght@400&family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500;700&display=swap";:root{--sol-base3:#fdf6e3;--sol-base2:#eee8d5;--sol-base1:#93a1a1;--sol-base0:#657b83;--sol-base00:#586e75;--sol-base01:#073642;--sol-yellow:#b58900;--sol-orange:#cb4b16;--sol-red:#dc322f;--sol-magenta:#d33682;--sol-violet:#6c71c4;--sol-blue:#268bd2;--sol-cyan:#2aa198;--sol-green:#859900;--bg:var(--sol-base3);--bg-card:var(--sol-base2);--text:var(--sol-base01);--text-muted:var(--sol-base1);--accent:var(--sol-blue);--accent2:var(--sol-orange);--accent3:var(--sol-green);--danger:var(--sol-red);--border:var(--sol-base01);--font-pixel:"Press Start 2P", monospace;--font-vt:"VT323", monospace;--font-mono:"JetBrains Mono", monospace;--font-body:"Inter", system-ui, sans-serif;font-family:var(--font-body);color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);position:relative;overflow-x:hidden}.crt-overlay{pointer-events:none;z-index:9998;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000008 2px 4px);animation:8s infinite crt-flicker;position:fixed;inset:0}@keyframes crt-flicker{0%,98%,to{opacity:1}99%{opacity:.93}}.pixel-grid-bg{z-index:-2;background-image:linear-gradient(#0736420a 1px,#0000 1px),linear-gradient(90deg,#0736420a 1px,#0000 1px);background-size:16px 16px;position:fixed;inset:0}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-card)}::-webkit-scrollbar-thumb{background:var(--accent);border:2px solid var(--bg-card)}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 2rem}@media (width<=768px){.container{padding:0 1rem}}.pixel-box{background:var(--bg-card);border:3px solid var(--border);box-shadow:4px 4px 0px var(--border);border-radius:0;transition:box-shadow .15s,transform .15s;position:relative}.pixel-box:hover{box-shadow:6px 6px 0px var(--border);transform:translate(-2px,-2px)}.pixel-box-double{background:var(--bg-card);border:3px double var(--border);outline:2px solid var(--border);outline-offset:3px;box-shadow:4px 4px 0px var(--border);border-radius:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-pixel);letter-spacing:.5px;font-weight:400;line-height:1.4}.pixel-title{font-family:var(--font-pixel);color:var(--text);text-shadow:3px 3px 0 var(--sol-base1);margin-bottom:.5rem;font-size:clamp(1.1rem,3vw,1.8rem);line-height:1.5}.pixel-subtitle{font-family:var(--font-pixel);color:var(--accent);letter-spacing:2px;text-transform:uppercase;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.6rem;display:flex}.pixel-subtitle:before{content:"▶";font-size:.6rem}.pixel-subtitle:after{content:"";background:repeating-linear-gradient(90deg, var(--accent) 0, var(--accent) 4px, transparent 4px, transparent 8px);flex:1;height:2px}.vt-text{font-family:var(--font-vt);font-size:1.4rem;line-height:1.4}.blink-cursor:after{content:"█";color:var(--accent);animation:.8s step-end infinite blink}@keyframes blink{50%{opacity:0}}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(16px)}.reveal.active{opacity:1;transform:translateY(0)}.navbar{z-index:100;background:var(--bg);border-bottom:3px solid var(--border);width:100%;box-shadow:0 4px 0 var(--sol-base1);position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;height:64px;display:flex}.nav-brand{font-family:var(--font-pixel);color:var(--text);align-items:center;gap:.5rem;font-size:.75rem;text-decoration:none;display:flex}.nav-brand .brand-accent{color:var(--accent2)}.nav-links{gap:2rem;list-style:none;display:flex}.nav-link{font-family:var(--font-pixel);color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;padding:.3rem 0;font-size:.5rem;text-decoration:none;transition:color .2s;position:relative}.nav-link:hover,.nav-link.active{color:var(--accent)}.nav-link:after{content:"";background:var(--accent);width:0;height:2px;transition:width .2s;position:absolute;bottom:-2px;left:0}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-toggle{border:2px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--font-pixel);background:0 0;padding:.35rem .6rem;font-size:.5rem;display:none}@media (width<=768px){.nav-links{background:var(--bg);border-bottom:3px solid var(--border);z-index:99;visibility:hidden;flex-direction:column;align-items:center;gap:1.5rem;width:100%;padding:2rem 0;transition:transform .3s,visibility .3s;position:fixed;top:67px;left:0;transform:translateY(-110%)}.nav-links.open{visibility:visible;transform:translateY(0)}.nav-toggle{display:block}}.hero-section{align-items:center;min-height:calc(100vh - 67px);padding:4rem 0;display:flex;position:relative;overflow:hidden}.hero-grid{grid-template-columns:1fr 340px;align-items:center;gap:3rem;display:grid}@media (width<=900px){.hero-grid{text-align:center;grid-template-columns:1fr}.hero-cta{justify-content:center}}.hero-tag{font-family:var(--font-pixel);color:var(--accent3);letter-spacing:2px;align-items:center;gap:.4rem;margin-bottom:1rem;font-size:.5rem;display:flex}.hero-tag:before{content:"■";animation:1s step-end infinite blink}.hero-title{font-family:var(--font-pixel);color:var(--text);text-shadow:4px 4px 0 var(--sol-base1);margin-bottom:1rem;font-size:clamp(1rem,3.5vw,1.9rem);line-height:1.5}.hero-title .name-highlight{color:var(--accent2);display:block}.hero-role{font-family:var(--font-vt);color:var(--accent);min-height:2.5rem;margin-bottom:1.5rem;font-size:1.6rem}.hero-desc{font-family:var(--font-mono);color:var(--text-muted);max-width:520px;margin-bottom:2rem;font-size:.85rem;line-height:1.8}.hero-cta{flex-wrap:wrap;gap:1rem;display:flex}.pixel-avatar-wrapper{justify-content:center;align-items:center;display:flex;position:relative}.pixel-avatar-frame{border:4px solid var(--border);width:260px;height:260px;box-shadow:8px 8px 0 var(--border);background:var(--bg-card);position:relative;overflow:hidden}.pixel-avatar-frame img{object-fit:cover;width:100%;height:100%;image-rendering:pixelated}.pixel-avatar-frame:before{content:"PLAYER 1";font-family:var(--font-pixel);color:var(--accent);background:var(--bg);border:1px solid var(--accent);z-index:1;padding:2px 6px;font-size:.45rem;position:absolute;top:6px;left:50%;transform:translate(-50%)}.pixel-avatar-stats{white-space:nowrap;gap:.5rem;display:flex;position:absolute;bottom:-3rem;left:50%;transform:translate(-50%)}.stat-pill{font-family:var(--font-pixel);border:2px solid var(--border);background:var(--bg);color:var(--text);padding:3px 6px;font-size:.4rem}.stat-pill.gold{border-color:var(--sol-yellow);color:var(--sol-yellow)}.stat-pill.blue{border-color:var(--accent);color:var(--accent)}.stat-pill.green{border-color:var(--accent3);color:var(--accent3)}@media (width<=900px){.pixel-avatar-frame{width:180px;height:180px}.pixel-avatar-stats{bottom:-2.5rem}}.btn-pixel{font-family:var(--font-pixel);border:3px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;box-shadow:4px 4px 0 var(--border);letter-spacing:.5px;align-items:center;gap:.5rem;padding:.7rem 1.2rem;font-size:.55rem;text-decoration:none;transition:box-shadow .12s,transform .12s;display:inline-flex;position:relative;overflow:hidden}.btn-pixel:hover{box-shadow:2px 2px 0 var(--border);transform:translate(2px,2px)}.btn-pixel:active{box-shadow:0 0 0 var(--border);transform:translate(4px,4px)}.btn-pixel-primary{background:var(--accent);color:#fff;border-color:var(--sol-base01)}.btn-pixel-primary:hover{color:#fff}.btn-pixel-secondary{background:var(--bg);color:var(--text)}.btn-pixel-danger{background:var(--danger);color:#fff;border-color:var(--sol-base01)}.section-pad{padding:5rem 0}.section-alt{background:var(--bg-card)}.console-box{background:var(--sol-base01);border:3px solid var(--border);box-shadow:6px 6px 0 var(--sol-base00);color:var(--sol-base2);font-family:var(--font-mono);border-radius:0}.console-titlebar{background:var(--sol-base00);border-bottom:2px solid var(--sol-base1);align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.console-dot{border-radius:50%;width:10px;height:10px}.dot-r{background:var(--sol-red)}.dot-y{background:var(--sol-yellow)}.dot-g{background:var(--sol-green)}.console-title-text{font-family:var(--font-pixel);color:var(--sol-base1);letter-spacing:1px;margin-left:auto;font-size:.45rem}.console-body{padding:1.25rem}.console-chat-history{flex-direction:column;gap:.75rem;height:280px;margin-bottom:1rem;padding-right:.5rem;display:flex;overflow-y:auto}.console-chat-history::-webkit-scrollbar{width:4px}.console-chat-history::-webkit-scrollbar-track{background:var(--sol-base00)}.console-chat-history::-webkit-scrollbar-thumb{background:var(--accent)}.chat-msg{max-width:90%;font-size:.9rem;line-height:1.6;animation:.2s forwards fade-slide-in}@keyframes fade-slide-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-msg.bot{color:var(--sol-green);border-left:3px solid var(--sol-green);align-self:flex-start;padding-left:.75rem}.chat-msg.bot:before{content:"> "}.chat-msg.user{color:var(--sol-yellow);border-right:3px solid var(--sol-yellow);text-align:right;align-self:flex-end;padding-right:.75rem}.chat-msg.user:after{content:" [YOU]";color:var(--sol-base1);font-size:.7rem}.console-input-row{border:2px solid var(--sol-base1);gap:0;display:flex}.console-prompt{font-family:var(--font-mono);color:var(--sol-green);background:var(--sol-base00);white-space:nowrap;padding:.5rem .75rem;font-size:.9rem}.console-input{background:var(--sol-base01);color:var(--sol-base2);font-family:var(--font-mono);border:none;outline:none;flex:1;padding:.5rem .75rem;font-size:.9rem}.console-send-btn{background:var(--accent);color:#fff;font-family:var(--font-pixel);cursor:pointer;letter-spacing:.5px;border:none;padding:0 .85rem;font-size:.45rem}.console-send-btn:hover{background:var(--sol-violet)}.quick-cmds{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.quick-cmd{font-family:var(--font-mono);background:var(--sol-base00);border:1px solid var(--sol-base1);color:var(--sol-cyan);cursor:pointer;padding:.3rem .65rem;font-size:.75rem;transition:background .15s}.quick-cmd:hover{background:var(--sol-base01);color:var(--sol-green)}.quick-cmd:before{content:"./";color:var(--sol-base1)}.timeline-wrapper{max-width:960px;margin:3rem auto 0;position:relative}.timeline-line{background:repeating-linear-gradient(to bottom, var(--border) 0, var(--border) 8px, transparent 8px, transparent 16px);width:4px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{grid-template-columns:1fr 1fr;gap:3rem;margin-bottom:5rem;display:grid;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-dot{background:var(--accent);border:3px solid var(--border);z-index:2;width:18px;height:18px;box-shadow:2px 2px 0 var(--border);transition:background .2s,transform .2s;position:absolute;top:1.5rem;left:50%;transform:translate(-50%,-50%)}.timeline-item:hover .timeline-dot{background:var(--accent2);transform:translate(-50%,-50%)scale(1.3)}.timeline-content{flex-direction:column;display:flex}.timeline-item:nth-child(odd) .timeline-content{text-align:right;grid-column:1;align-items:flex-end}.timeline-item:nth-child(2n) .timeline-content{text-align:left;grid-column:2;align-items:flex-start}.timeline-item:nth-child(odd) .timeline-img{grid-column:2}.timeline-item:nth-child(2n) .timeline-img{grid-column:1}.timeline-img{justify-content:center;align-items:center;display:flex}.timeline-img img{border:3px solid var(--border);width:100%;max-width:300px;box-shadow:4px 4px 0 var(--border);image-rendering:pixelated}.level-tag{font-family:var(--font-pixel);color:var(--accent2);letter-spacing:1px;margin-bottom:.5rem;font-size:.5rem}.quest-title{font-family:var(--font-pixel);color:var(--text);text-shadow:2px 2px 0 var(--sol-base1);margin-bottom:.75rem;font-size:clamp(.85rem,2vw,1.1rem);line-height:1.5}.meta-pills{flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem;display:flex}.timeline-item:nth-child(odd) .meta-pills{justify-content:flex-end}.meta-pill{font-family:var(--font-mono);border:2px solid var(--border);background:var(--bg);color:var(--text-muted);padding:2px 8px;font-size:.65rem}.meta-pill.diff{border-color:var(--danger);color:var(--danger);background:#dc322f0f}.meta-pill.exp{border-color:var(--accent);color:var(--accent);background:#268bd20f}.quest-card{background:var(--bg);border:2px solid var(--border);box-shadow:3px 3px 0 var(--border);max-width:420px;font-family:var(--font-vt);color:var(--text);margin-bottom:.75rem;padding:1.1rem 1.2rem;font-size:1.25rem;line-height:1.5}.boss-log{border-left:4px solid var(--danger);font-family:var(--font-mono);color:var(--sol-base00);background:#dc322f0a;max-width:420px;margin-bottom:.75rem;padding:.65rem .85rem;font-size:.75rem}.boss-log strong{color:var(--danger)}.loot-row{font-family:var(--font-mono);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.7rem;display:flex}.timeline-item:nth-child(odd) .loot-row{justify-content:flex-end}.loot-chip{background:var(--bg-card);border:1px solid var(--border);color:var(--accent3);padding:2px 6px;font-weight:600}@media (width<=860px){.timeline-line,.timeline-dot{left:14px}.timeline-item{grid-template-columns:1fr;gap:1rem;margin-bottom:3.5rem;padding-left:2.5rem}.timeline-item:nth-child(odd) .timeline-content,.timeline-item:nth-child(2n) .timeline-content{text-align:left;grid-column:1;align-items:flex-start}.timeline-item:nth-child(odd) .timeline-img,.timeline-item:nth-child(2n) .timeline-img{grid-column:1}.timeline-item:nth-child(odd) .meta-pills,.timeline-item:nth-child(odd) .loot-row{justify-content:flex-start}.quest-card,.boss-log{max-width:100%}}.rpg-panel{background:var(--bg-card);border:3px solid var(--border);box-shadow:6px 6px 0 var(--border);grid-template-columns:280px 1fr;gap:2.5rem;display:grid}@media (width<=768px){.rpg-panel{grid-template-columns:1fr}}.rpg-left{border-right:3px solid var(--border);text-align:center;background:var(--bg);flex-direction:column;align-items:center;padding:1.5rem;display:flex}@media (width<=768px){.rpg-left{border-right:none;border-bottom:3px solid var(--border)}}.rpg-avatar{border:3px solid var(--border);width:120px;height:120px;box-shadow:4px 4px 0 var(--border);image-rendering:pixelated;margin-bottom:1rem;overflow:hidden}.rpg-avatar img{object-fit:cover;width:100%;height:100%}.rpg-class{font-family:var(--font-pixel);color:var(--text);margin-bottom:.25rem;font-size:.55rem;line-height:1.6}.rpg-level{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:1px;margin-bottom:1.5rem;font-size:.7rem}.seg-bar-group{width:100%}.seg-bar-label{font-family:var(--font-pixel);letter-spacing:1px;color:var(--text);justify-content:space-between;margin-bottom:4px;font-size:.45rem;display:flex}.seg-bar{gap:2px;margin-bottom:.75rem;display:flex}.seg-block{border:1px solid var(--border);flex-shrink:0;width:14px;height:10px}.seg-block.filled-hp{background:var(--sol-red)}.seg-block.filled-mp{background:var(--accent)}.seg-block.filled-xp{background:var(--sol-yellow)}.seg-block.empty{background:var(--bg-card)}.rpg-right{flex-direction:column;justify-content:center;padding:1.5rem 2rem;display:flex}.attr-title{font-family:var(--font-pixel);color:var(--accent);letter-spacing:1.5px;border-bottom:2px dashed var(--border);text-transform:uppercase;margin-bottom:1.5rem;padding-bottom:.5rem;font-size:.55rem}.attr-grid{flex-direction:column;gap:1rem;display:flex}.attr-row{grid-template-columns:140px 55px 1fr;align-items:center;gap:.75rem;display:grid}.attr-name{font-family:var(--font-pixel);color:var(--text);letter-spacing:.5px;text-align:left;font-size:.45rem}.attr-val{font-family:var(--font-mono);color:var(--accent);text-align:left;font-size:.75rem;font-weight:700}.attr-track{background:var(--bg);border:2px solid var(--border);height:10px;position:relative;overflow:hidden}.attr-fill{background:repeating-linear-gradient(90deg, var(--accent) 0, var(--accent) 6px, transparent 6px, transparent 8px);width:0;height:100%;transition:width 1s}.stat-counters{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:2.5rem;display:grid}.stat-counter{background:var(--bg);border:3px solid var(--border);box-shadow:4px 4px 0 var(--border);text-align:center;padding:1.25rem}.stat-counter .num{font-family:var(--font-pixel);color:var(--accent2);margin-bottom:.5rem;font-size:1.4rem;line-height:1;display:block}.stat-counter .label{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.65rem}.skills-filter-bar{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.skill-bar-wrap{margin-bottom:1.1rem}.skill-bar-header{font-family:var(--font-mono);color:var(--text);justify-content:space-between;margin-bottom:4px;font-size:.75rem;display:flex}.skill-bar-track{background:var(--bg);border:2px solid var(--border);height:12px;overflow:hidden}.skill-bar-fill{background:repeating-linear-gradient(90deg, var(--accent3) 0, var(--accent3) 6px, transparent 6px, transparent 8px);width:0;height:100%;transition:width 1.1s}.repo-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.repo-card{background:var(--bg-card);border:3px solid var(--border);box-shadow:4px 4px 0 var(--border);color:var(--text);flex-direction:column;gap:.5rem;padding:1.25rem;text-decoration:none;transition:box-shadow .12s,transform .12s;display:flex}.repo-card:hover{box-shadow:6px 6px 0 var(--border);transform:translate(-2px,-2px)}.repo-card-name{font-family:var(--font-pixel);color:var(--accent);letter-spacing:.5px;font-size:.55rem;line-height:1.6}.repo-card-desc{font-family:var(--font-vt);color:var(--text-muted);flex:1;font-size:1.15rem;line-height:1.4}.repo-card-meta{font-family:var(--font-mono);color:var(--text-muted);border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.25rem;padding-top:.5rem;font-size:.65rem;display:flex}.repo-lang{color:var(--accent3);font-weight:700}.repo-badge{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);padding:1px 5px;font-size:.6rem}.form-pixel{flex-direction:column;gap:1rem;display:flex}.form-label-pixel{font-family:var(--font-pixel);color:var(--accent);letter-spacing:1px;margin-bottom:3px;font-size:.5rem;display:block}.form-input-pixel,.form-textarea-pixel{background:var(--bg);border:3px solid var(--border);width:100%;color:var(--text);font-family:var(--font-mono);border-radius:0;outline:none;padding:.65rem .85rem;font-size:.9rem;transition:border-color .2s;box-shadow:inset 2px 2px #0000000f}.form-input-pixel:focus,.form-textarea-pixel:focus{border-color:var(--accent);box-shadow:inset 2px 2px #268bd214}.form-textarea-pixel{resize:vertical;min-height:110px}.social-row{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.social-btn{border:3px solid var(--border);background:var(--bg);width:40px;height:40px;color:var(--text-muted);box-shadow:3px 3px 0 var(--border);justify-content:center;align-items:center;text-decoration:none;transition:box-shadow .12s,transform .12s,color .12s;display:flex}.social-btn:hover{color:var(--accent);box-shadow:1px 1px 0 var(--border);border-color:var(--accent);transform:translate(2px,2px)}.footer{background:var(--sol-base01);border-top:3px solid var(--border);color:var(--sol-base1);text-align:center;font-family:var(--font-mono);padding:2.5rem 0;font-size:.8rem}.footer .footer-brand{font-family:var(--font-pixel);color:var(--sol-base3);margin-bottom:.5rem;font-size:.55rem}.footer .footer-heart{color:var(--sol-magenta)}.writing-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.writing-card{background:var(--bg-card);border:3px solid var(--border);box-shadow:4px 4px 0 var(--border);flex-direction:column;gap:.6rem;padding:1.5rem;transition:box-shadow .12s,transform .12s;display:flex}.writing-card:hover{box-shadow:6px 6px 0 var(--border);transform:translate(-2px,-2px)}.writing-tag{font-family:var(--font-pixel);color:var(--sol-cyan);letter-spacing:1px;text-transform:uppercase;font-size:.42rem}.writing-title{font-family:var(--font-pixel);color:var(--text);flex:1;font-size:.55rem;line-height:1.7}.writing-meta{font-family:var(--font-mono);color:var(--text-muted);font-size:.7rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.float-anim{animation:3s ease-in-out infinite float}.parallax-layer{z-index:-1;opacity:.05;will-change:transform;image-rendering:pixelated;background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}
