:root{--bg-page:#f6f6f4;--bg:#fff;--text:#6b6375;--text-h:#111;--border:#e5e4e7;--accent:#0f766e;--dot-red:#ef4444;--dot-amber:#f59e0b;--dot-green:#22c55e;--mono:ui-monospace, "JetBrains Mono", Consolas, monospace;font:16px/165% var(--mono);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg-page);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0}#root{box-sizing:border-box;min-height:100svh;padding:48px 24px}h1,h2{font-family:var(--mono);color:var(--text-h);font-weight:500}h1{margin:8px 0 4px;font-size:32px}h2.cmd{color:var(--text);margin:0 0 12px;font-size:16px;font-weight:400}.cmd-line{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;margin-bottom:12px;display:flex}.cmd-line h2.cmd{margin:0}h2.cmd:before{content:"$ "}p{margin:0}a{color:var(--accent)}.terminal{background:var(--bg);border:1px solid var(--border);border-radius:10px;max-width:900px;margin:0 auto;overflow:hidden}.terminal-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 20px;display:flex}.terminal-dots{gap:6px;display:flex}.terminal-dots span{border-radius:50%;width:11px;height:11px;display:inline-block}.terminal-dots span:first-child{background:var(--dot-red)}.terminal-dots span:nth-child(2){background:var(--dot-amber)}.terminal-dots span:nth-child(3){background:var(--dot-green)}.terminal-path{color:var(--text);font-size:14px}.terminal-body{padding:32px 28px 40px}.terminal-body>section+section{margin-top:40px}.out{color:var(--accent);margin-top:4px}.archived-toggle{color:var(--text);cursor:pointer;align-items:center;gap:6px;font-size:14px;display:flex}.archived-toggle input{appearance:none;background:var(--border);cursor:pointer;border-radius:999px;flex-shrink:0;width:32px;height:18px;transition:background-color .15s;position:relative}.archived-toggle input:after{content:"";background:var(--bg);border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px}.archived-toggle input:checked{background:var(--accent)}.archived-toggle input:checked:after{transform:translate(14px)}.about{white-space:pre-line}.project-group+.project-group{margin-top:24px}.group-label{color:var(--text);margin:0 0 8px;font-size:13px}.folders{column-width:220px;column-gap:16px}.folder{break-inside:avoid;border:1px solid var(--border);color:inherit;border-radius:6px;margin-bottom:16px;padding:14px 16px;text-decoration:none;display:block}.folder:hover{border-color:var(--accent)}.folder-name{color:var(--accent);overflow-wrap:anywhere;align-items:center;gap:6px;display:flex}.folder-icon{fill:#5ac8fa;flex-shrink:0}.folder-desc{color:var(--text);overflow-wrap:anywhere;margin-top:6px;font-size:14px}.folder-desc.clamped{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.folder-desc-wrap{position:relative}.folder-desc-toggle{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:2px;padding:0;font-size:12px}.folder-desc-toggle.overlay-toggle{background:var(--bg);margin-top:0;padding-left:6px;position:absolute;bottom:0;right:0}.folder-tags{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.lang-pill{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500}.tag-pill{background:var(--border);color:var(--text);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500}.experience-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.experience-list li{flex-wrap:wrap;gap:4px 10px;display:flex}.experience-title{color:var(--text-h)}.experience-period{color:var(--text);font-size:14px}.contact-list{flex-wrap:wrap;gap:20px;margin:0;padding:0;list-style:none;display:flex}.contact-list a{align-items:center;gap:8px;text-decoration:none;display:inline-flex}.contact-list svg{fill:currentColor;width:16px;height:16px}.prompt-end{color:var(--text);align-items:center;gap:6px;display:flex}.cursor{background:var(--text-h);width:1ch;height:1.1em;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}}@media (width<=1024px){:root{font-size:15px}.terminal-body{padding:24px 18px 32px}}@media (width<=480px){#root{padding:32px 16px}h1{font-size:26px}}
