:root{--bg-deepest: #1E1F22;--bg-panel: #2B2D30;--bg-tab-active: #4E5157;--bg-tab-hover: #393B40;--bg-selection: #2E436E;--border-subtle: #393B40;--border-panel: #3C3F41;--text-primary: #DFE1E5;--text-secondary: #A9B7C6;--text-muted: #6F737A;--syntax-string: #6A8759;--green: #22c55e;--green-dim: #16a34a;--green-glow: rgba(34, 197, 94, .08);--green-on-dark: #0a0a0a}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden;font-family:Inter,sans-serif;background:var(--bg-deepest);color:var(--text-primary);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}.ide-root{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.ide-main{display:flex;flex:1;overflow:hidden}.activity-bar{width:40px;flex-shrink:0;height:100%;background:var(--bg-deepest);border-right:1px solid var(--border-panel);display:flex;flex-direction:column;align-items:center;padding-top:16px;gap:8px}.activity-icon{width:40px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:color .15s;cursor:pointer;position:relative}.activity-icon:hover{color:var(--green)}.activity-icon.active:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--green);border-radius:0 1px 1px 0}.activity-spacer{margin-top:auto}.file-tree{width:220px;flex-shrink:0;height:100%;background:var(--bg-panel);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow:hidden}.logo-lockup{display:flex;align-items:center;padding:0 16px;height:52px;flex-shrink:0;border-bottom:1px solid var(--border-subtle)}.logo-content{display:flex;align-items:center;gap:8px;position:relative;width:fit-content;-webkit-user-select:none;user-select:none}.logo-wordmark{font-family:Inter,sans-serif;font-weight:500;font-size:15px;color:#dfe1e5;letter-spacing:.01em;-webkit-user-select:none;user-select:none;white-space:nowrap}.logo-tooltip{position:absolute;top:100%;left:20px;background:var(--bg-panel);border:1px solid var(--green);color:var(--text-primary);padding:6px 12px;border-radius:12px;font-size:18px;box-shadow:0 4px 12px #0003;opacity:0;visibility:hidden;transform:translateY(10px) scale(.9);transition:all .2s cubic-bezier(.34,1.56,.64,1);pointer-events:none;z-index:1000;white-space:nowrap}.logo-tooltip:before{content:"";position:absolute;bottom:100%;left:12px;border-width:6px;border-style:solid;border-color:transparent transparent var(--green) transparent}.logo-tooltip:after{content:"";position:absolute;bottom:100%;left:13px;border-width:5px;border-style:solid;border-color:transparent transparent var(--bg-panel) transparent}.logo-content:hover .logo-tooltip{opacity:1;visibility:visible;transform:translateY(8px) scale(1)}.drawer-logo{display:flex}.mobile-header{display:none;align-items:center;justify-content:space-between;height:48px;background:var(--bg-panel);border-bottom:1px solid var(--border-subtle);padding:0 16px;position:sticky;top:0;z-index:150;width:100%;box-sizing:border-box;flex-shrink:0}.mobile-header .logo-lockup{height:auto;padding:0;border-bottom:none}.mobile-menu-btn{display:flex;align-items:center;color:var(--text-muted);background:none;border:none;cursor:pointer;padding:4px;transition:color .15s}.mobile-menu-btn:hover{color:var(--green)}.file-tree-header{height:36px;display:flex;align-items:center;padding:0 12px;gap:6px;border-bottom:1px solid var(--border-subtle);font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.file-tree-body{flex:1;overflow-y:auto;padding:4px 0}.tree-folder-row{height:26px;display:flex;align-items:center;padding:0 8px;gap:4px;font-family:JetBrains Mono,monospace;font-size:13px;color:var(--text-primary);cursor:default}.tree-file-row{height:32px;display:flex;align-items:center;padding:0 8px 0 28px;gap:5px;font-family:JetBrains Mono,monospace;font-size:13px;cursor:pointer;transition:background 80ms;-webkit-user-select:none;user-select:none}.tree-file-row:hover:not(.active){background:var(--bg-tab-hover)}.tree-file-row.active{background:var(--bg-selection)}.tree-file-row.active .tree-fname,.tree-file-row.active .tree-ext{color:var(--text-primary)}.tree-fname{color:var(--text-secondary)}.tree-ext{color:var(--syntax-string)}.right-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.tab-bar{height:36px;background:var(--bg-panel);border-bottom:1px solid var(--border-subtle);display:flex;align-items:flex-end;overflow:hidden;flex-shrink:0}.tab-item{height:36px;display:flex;align-items:center;padding:0 8px 0 12px;gap:6px;font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-secondary);cursor:pointer;border-right:1px solid var(--border-subtle);max-width:160px;white-space:nowrap;overflow:hidden;position:relative;flex-shrink:0;transition:background 80ms;animation:tabSlideIn .2s ease-out}@keyframes tabSlideIn{0%{width:0;opacity:0;overflow:hidden}to{opacity:1}}.tab-item:hover:not(.active){background:var(--bg-tab-hover)}.tab-item.active{background:var(--bg-tab-active);color:var(--text-primary);border-top:2px solid var(--green);padding-top:0}.tab-close{opacity:0;transition:opacity .15s;display:flex;align-items:center;margin-left:auto;padding-left:4px;color:var(--text-muted);flex-shrink:0}.tab-item:hover .tab-close{opacity:1}.tab-close:hover{color:var(--text-primary)}.breadcrumb-bar{height:28px;background:var(--bg-deepest);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;padding:0 16px;gap:4px;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-muted);flex-shrink:0}.content-area{flex:1;background:var(--bg-deepest);overflow-y:auto;overflow-x:hidden}.content-area::-webkit-scrollbar{width:6px}.content-area::-webkit-scrollbar-track{background:transparent}.content-area::-webkit-scrollbar-thumb{background:var(--border-panel);border-radius:3px;transition:background .2s}.content-area::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.content-inner{max-width:860px;margin:0 auto;padding:60px 48px}.status-bar{height:22px;width:100%;background:var(--green);z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--green-on-dark);flex-shrink:0}.status-left,.status-right{display:flex;align-items:center;gap:6px}.page-title-block{padding:60px 48px 40px;background:radial-gradient(ellipse 80% 60% at 50% 50%,rgba(34,197,94,.06) 0%,transparent 70%)}.page-label{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--green);margin-bottom:12px}.page-title{font-family:Inter,sans-serif;font-weight:700;font-size:32px;color:var(--text-primary);line-height:1.2}.hero-section{height:calc(100vh - 86px);display:flex;flex-direction:column;justify-content:center;padding-left:48px;padding-right:48px;position:relative;overflow:hidden;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:40px 40px}.hero-glow{position:absolute;inset:0;background:radial-gradient(ellipse 60% 70% at 30% 50%,rgba(34,197,94,.07) 0%,transparent 70%);pointer-events:none}.hero-content{position:relative;z-index:1}.hero-comment{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--green);margin-bottom:8px}.hero-name{font-family:JetBrains Mono,monospace;font-size:13px;color:var(--text-muted);letter-spacing:.15em;margin-bottom:16px}.hero-title{font-family:Inter,sans-serif;font-weight:700;font-size:clamp(2.5rem,6vw,4.5rem);line-height:1.1;color:var(--text-primary);margin-bottom:24px}.hero-pill{display:inline-flex;align-items:center;border:1px solid rgba(34,197,94,.3);background:#22c55e14;padding:4px 12px;border-radius:4px;color:var(--green);font-family:JetBrains Mono,monospace;font-size:12px;margin-bottom:24px}.hero-bio{font-family:Inter,sans-serif;font-size:15px;color:var(--text-secondary);line-height:1.65;max-width:480px;margin-bottom:40px}.hero-actions{display:flex;gap:16px;flex-wrap:wrap}.btn-primary{background:var(--green);color:var(--green-on-dark);padding:10px 24px;border-radius:4px;font-family:Inter,sans-serif;font-weight:500;font-size:15px;cursor:pointer;border:none;transition:background .15s;display:inline-flex;align-items:center}.btn-primary:hover{background:var(--green-dim)}.btn-ghost{background:transparent;color:var(--text-secondary);padding:10px 24px;border-radius:4px;font-family:Inter,sans-serif;font-weight:500;font-size:15px;cursor:pointer;border:1px solid var(--border-panel);transition:border-color .15s,color .15s;display:inline-flex;align-items:center}.btn-ghost:hover{border-color:var(--green);color:var(--green)}.hero-content>*{opacity:0;transform:translateY(12px);animation:heroIn .4s ease-out forwards}.hero-comment{animation-delay:.1s}.hero-name{animation-delay:.2s}.hero-title{animation-delay:.3s}.hero-pill{animation-delay:.35s}.hero-bio{animation-delay:.4s}.hero-actions{animation-delay:.5s}@keyframes heroIn{to{opacity:1;transform:translateY(0)}}.floating-logos{position:absolute;top:0;right:0;width:45%;height:100%;pointer-events:none;z-index:0}.logo-bubble{position:absolute;background:#2b2d3099;border-radius:50%;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--border-subtle);animation:float 10s ease-in-out infinite}.logo-bubble svg{width:60%;height:60%;opacity:.7}@keyframes float{0%,to{transform:translateY(0) translate(0)}50%{transform:translateY(-20px) translate(10px)}}.section-label{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--green);margin-bottom:24px}.section-block{padding-top:80px}.exp-list{display:flex;flex-direction:column;gap:40px}.exp-entry{border-left:1px solid var(--border-subtle);margin-left:0;padding-left:20px}.exp-date{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-muted);margin-bottom:6px}.exp-role{font-family:Inter,sans-serif;font-weight:600;font-size:16px;color:var(--text-primary);margin-bottom:12px}.exp-bullets{list-style:none;margin-bottom:14px}.exp-bullets li{font-family:Inter,sans-serif;font-size:14px;color:var(--text-secondary);line-height:1.7}.exp-bullets li:before{content:"— ";color:var(--text-muted)}.exp-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tech-pill{background:var(--bg-panel);border:1px solid var(--border-subtle);padding:3px 10px;border-radius:3px;color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:11px}.stack-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.stack-col-title{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px}.stack-item{display:flex;align-items:baseline;gap:6px;font-family:JetBrains Mono,monospace;font-size:13px;color:var(--text-secondary);margin-bottom:8px}.stack-arrow{color:var(--green);flex-shrink:0}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.project-card{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:6px;padding:24px;display:flex;flex-direction:column;transition:border-color .2s,box-shadow .2s}.project-card:hover{border-color:#22c55e66;box-shadow:0 0 20px #22c55e0d}.card-status-row{margin-bottom:10px}.status-pill{display:inline-flex;align-items:center;font-family:JetBrains Mono,monospace;font-size:11px;padding:2px 8px;border-radius:3px}.status-pill.private{color:var(--text-muted);border:1px solid var(--border-subtle)}.status-pill.open{color:var(--green);border:1px solid rgba(34,197,94,.3);background:#22c55e14}.card-name{font-family:Inter,sans-serif;font-weight:600;font-size:16px;color:var(--text-primary);margin-bottom:6px}.card-tech-tag{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--syntax-string);margin-bottom:12px}.card-desc{font-family:Inter,sans-serif;font-size:14px;color:var(--text-secondary);line-height:1.6;flex:1;margin-bottom:16px}.card-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.card-bottom{margin-top:auto;font-family:Inter,sans-serif;font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:6px;border-top:1px solid var(--border-subtle);padding-top:14px}.card-bottom a{color:var(--text-muted);display:flex;align-items:center;gap:6px;transition:color .15s}.card-bottom a:hover{color:var(--green)}.cta-block{padding:80px 48px;background:radial-gradient(ellipse 80% 60% at 50% 50%,rgba(34,197,94,.06) 0%,transparent 70%);text-align:center}.cta-comment{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--green);margin-bottom:16px}.cta-heading{font-family:Inter,sans-serif;font-weight:600;font-size:28px;color:var(--text-primary);margin-bottom:16px}.cta-email{display:block;font-family:Inter,sans-serif;font-size:15px;color:var(--green);text-decoration:underline;margin-bottom:32px}.oss-block{margin-top:40px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:6px;padding:24px}.oss-block p{font-family:Inter,sans-serif;font-size:15px;color:var(--text-secondary);margin:10px 0 16px}.oss-block a{display:inline-flex;align-items:center;gap:6px;color:var(--green);font-family:Inter,sans-serif;font-size:14px;transition:opacity .15s}.oss-block a:hover{opacity:.8}.about-content{max-width:680px;margin:0 auto;padding:0 48px}.about-section{margin-bottom:48px}.about-section p{font-family:Inter,sans-serif;font-size:15px;color:var(--text-secondary);line-height:1.7;margin-bottom:16px}.code-block{background:var(--bg-panel);border-left:3px solid var(--green);border-radius:0 4px 4px 0;padding:24px;font-family:JetBrains Mono,monospace;font-size:13px;color:var(--text-secondary);line-height:1.8;white-space:pre-wrap}.elsewhere-links{display:flex;gap:24px;flex-wrap:wrap}.elsewhere-links a{display:flex;align-items:center;gap:8px;font-family:Inter,sans-serif;font-size:14px;color:var(--text-secondary);transition:color .15s}.elsewhere-links a:hover{color:var(--green)}.contact-grid{display:grid;grid-template-columns:55% 1px 40%;gap:40px;padding:0 48px;align-items:start}.contact-divider{background:var(--border-subtle);height:100%;min-height:300px}.form-label{display:block;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.form-input,.form-select,.form-textarea{width:100%;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:4px;padding:10px 14px;color:var(--text-primary);font-family:Inter,sans-serif;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s;margin-bottom:16px;-webkit-appearance:none;appearance:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px #22c55e26}.form-textarea{min-height:120px;resize:vertical}.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236F737A' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.form-select option{background:var(--bg-panel);color:var(--text-primary)}.btn-submit{width:100%;background:var(--green);color:var(--green-on-dark);font-family:Inter,sans-serif;font-weight:500;font-size:15px;padding:12px;border-radius:4px;border:none;cursor:pointer;margin-top:8px;transition:background .15s}.btn-submit:hover{background:var(--green-dim)}.open-to-list{list-style:none;margin:0 0 24px;line-height:2}.open-to-list li{font-family:Inter,sans-serif;font-size:14px;color:var(--text-secondary)}.open-to-list li:before{content:"— ";color:var(--text-muted)}.contact-email{font-family:JetBrains Mono,monospace;font-size:13px;color:var(--green)}.articles-placeholder{max-width:560px;margin:80px auto;padding:32px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-left:3px solid var(--green);border-radius:0 6px 6px 0}.articles-placeholder .comment{font-family:JetBrains Mono,monospace;font-size:13px;color:var(--green);margin-bottom:16px}.articles-placeholder p{font-family:Inter,sans-serif;font-size:15px;color:var(--text-secondary);line-height:1.65;margin-bottom:12px}.articles-placeholder .check-back{font-family:Inter,sans-serif;font-size:13px;color:var(--text-muted)}.success-msg{text-align:center;padding:48px 0}.success-msg h3{font-family:Inter,sans-serif;font-weight:600;font-size:20px;color:var(--green);margin-bottom:8px}.success-msg p{font-family:Inter,sans-serif;font-size:14px;color:var(--text-muted)}.drawer-overlay{position:fixed;inset:0;background:#00000080;z-index:199}.mobile-drawer{position:fixed;top:0;left:0;width:260px;height:100vh;background:var(--bg-panel);z-index:200;transition:transform .25s ease-out;display:flex;flex-direction:column}.mobile-drawer.closed{transform:translate(-100%)}.mobile-drawer.open{transform:translate(0)}.mobile-pill-nav{display:flex;overflow-x:auto;gap:8px;padding:8px 12px;scrollbar-width:none;background:var(--bg-panel);border-bottom:1px solid var(--border-subtle)}.mobile-pill-nav::-webkit-scrollbar{display:none}.mobile-pill{padding:6px 14px;border-radius:20px;font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-secondary);background:transparent;border:1px solid var(--border-subtle);cursor:pointer;white-space:nowrap;transition:all .12s;flex-shrink:0}.mobile-pill.active{background:#22c55e1a;border-color:var(--green);color:var(--green)}.page-body{padding:0 48px}.tablet-menu-btn{display:none;padding:0 12px;color:var(--text-muted);height:36px;align-items:center;cursor:pointer;background:none;border:none;flex-shrink:0;transition:color .15s}.tablet-menu-btn:hover{color:var(--green)}@media(max-width:1279px)and (min-width:768px){.activity-bar,.file-tree{display:none}.tablet-menu-btn{display:flex}.content-inner{padding:48px 32px}.page-title-block{padding:60px 32px 40px}.page-body,.contact-grid{padding:0 32px}}@media(max-width:1023px){.floating-logos{display:none}}@media(max-width:767px){.activity-bar,.file-tree,.tab-bar,.breadcrumb-bar{display:none}.mobile-header{display:flex}.drawer-logo{display:none}.content-inner{padding:24px 20px}.stack-grid{grid-template-columns:repeat(2,1fr)}.cards-grid,.contact-grid{grid-template-columns:1fr}.contact-divider{display:none}.hero-section{padding-left:24px;padding-right:24px;height:auto;min-height:80vh}.cta-block{padding:60px 24px}.about-content{padding:0 20px}.page-title-block{padding:40px 20px 32px}.page-body{padding:0 20px}.hero-title{font-size:clamp(2rem,8vw,3rem)}.status-bar .status-right{display:none}.oss-block{margin:24px 20px 0}}
