*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#fff;--color-bg-alt:#f5f6f8;--color-text:#1a1a2e;--color-text-muted:#6b7280;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-border:#e5e7eb;--radius:8px;--max-width:1024px;--terminal-bg:#0d1117;--terminal-border:#30363d;--terminal-text:#e6edf3;--terminal-green:#3fb950;--terminal-cyan:#58a6ff;--terminal-dim:#8b949e;--terminal-titlebar:#161b22}html{scroll-behavior:smooth}html.terminal-mode{overflow:hidden}html.gui-mode{overflow:auto}body{color:var(--color-text);background:var(--terminal-bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}html.terminal-mode body{overflow:hidden}html.gui-mode body{background:var(--color-bg);overflow:auto}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}.navbar{border-bottom:1px solid var(--color-border);background:var(--color-bg);z-index:100;padding:0 1.5rem;position:sticky;top:0}.navbar-inner{max-width:var(--max-width);justify-content:space-between;align-items:center;margin:0 auto;padding:.75rem 1.5rem;display:flex}.navbar-brand{letter-spacing:.05em;color:var(--color-text);font-size:1.25rem;font-weight:700}.navbar-links{gap:1.5rem;display:flex}.navbar-links a{color:var(--color-text-muted);font-size:.9rem;font-weight:500;transition:color .2s;position:relative}.navbar-links a:after{content:"";background:var(--color-accent);width:0;height:2px;transition:width .2s;position:absolute;bottom:-4px;left:0}.navbar-links a:hover:after{width:100%}.navbar-links a:hover{color:var(--color-text)}.terminal-hero{background:var(--terminal-bg);width:100vw;height:100dvh;padding:0;display:flex;position:relative;overflow:hidden}.terminal-hero-bg-grid{pointer-events:none;background-image:radial-gradient(circle,#58a6ff0f 1px,#0000 1px);background-size:24px 24px;position:absolute;inset:0}.terminal{background:var(--terminal-bg);z-index:1;flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.terminal-titlebar{background:var(--terminal-titlebar);border-bottom:1px solid var(--terminal-border);-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;padding:.5rem .85rem;display:flex;position:relative}.terminal-title{color:var(--terminal-dim);white-space:nowrap;font-family:SF Mono,Cascadia Code,Fira Code,Consolas,monospace;font-size:.78rem;position:absolute;left:50%;transform:translate(-50%)}.terminal-titlebar-right{align-items:center;gap:.75rem;margin-left:auto;display:flex}.terminal-dots{gap:8px;display:flex}.dot{cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:18px;font-weight:700;line-height:1;transition:background .15s,color .15s;display:flex}.dot-close:after{content:"×"}.dot-minimize:after{content:"−"}.dot-maximize:after{content:"□"}.dot-close,.dot-minimize,.dot-maximize{color:#ffffff73;background:#ffffff14}.dot-close:hover{color:#fff;background:#e95420}.dot-minimize:hover{color:#000;background:#f9c440}.dot-maximize:hover{color:#fff;background:#0abf53}.terminal-title{color:var(--terminal-dim);font-family:SF Mono,Cascadia Code,Fira Code,Consolas,monospace;font-size:.78rem}.terminal-spacer{flex:1}.settings-gear{color:var(--terminal-dim);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.5rem;line-height:1;transition:color .2s,transform .2s}.settings-gear:hover{color:var(--terminal-text);transform:rotate(30deg)}.settings-gear.active{color:var(--terminal-cyan);transform:rotate(45deg)}.settings-bar{background:var(--terminal-titlebar);border-bottom:1px solid var(--terminal-border);flex-direction:column;flex-shrink:0;gap:.5rem;padding:.6rem .85rem;display:flex}.settings-bar-section{align-items:center;gap:.6rem;display:flex}.settings-bar-label{color:var(--terminal-dim);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-family:SF Mono,Cascadia Code,Fira Code,Consolas,monospace;font-size:.72rem}.settings-bar-options{flex-wrap:wrap;gap:.35rem;display:flex}.settings-bar-btn{border:1px solid var(--terminal-border);color:var(--terminal-text);cursor:pointer;background:0 0;border-radius:4px;padding:.2rem .55rem;font-family:SF Mono,Cascadia Code,Fira Code,Consolas,monospace;font-size:.72rem;transition:background .15s,border-color .15s}.settings-bar-btn:hover{border-color:var(--terminal-cyan)}.settings-bar-btn.active{background:var(--terminal-cyan);color:var(--terminal-bg);border-color:var(--terminal-cyan)}.tab-bar{background:var(--terminal-titlebar);border-bottom:1px solid var(--terminal-border);flex-shrink:0;align-items:stretch;gap:1px;min-height:28px;padding:0 .35rem;display:flex}.tab-bar-tab{color:var(--terminal-dim);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:.35rem;padding:.3rem .55rem;font-family:SF Mono,Cascadia Code,Fira Code,Consolas,monospace;font-size:.72rem;transition:color .15s,border-color .15s,background .15s;display:flex}.tab-bar-tab:hover{color:var(--terminal-text);background:#ffffff0a}.tab-bar-tab.active{color:var(--terminal-text);border-bottom-color:var(--terminal-cyan);background:var(--terminal-bg)}.tab-bar-title{text-overflow:ellipsis;max-width:140px;overflow:hidden}.tab-bar-close{color:var(--terminal-dim);cursor:pointer;background:0 0;border:none;border-radius:2px;margin:0;padding:0;font-size:.85rem;line-height:1;transition:color .15s,background .15s}.tab-bar-close:hover{color:var(--terminal-text);background:#ffffff14}.tab-bar-add{color:var(--terminal-dim);cursor:pointer;background:0 0;border:none;align-self:stretch;padding:.3rem .5rem;font-size:1rem;line-height:1;transition:color .15s,background .15s}.tab-bar-add:hover{color:var(--terminal-cyan);background:#ffffff0a}.terminal-body{flex-direction:column;flex:1;justify-content:flex-start;padding:.85rem 1rem;font-family:SF Mono,Cascadia Code,Fira Code,Consolas,monospace;font-size:.95rem;line-height:1.65;display:flex;overflow-y:auto}.terminal-line{opacity:0;white-space:pre-wrap;word-break:break-word;flex-shrink:0;transition:opacity .3s,transform .3s;transform:translateY(8px)}.terminal-line.visible{opacity:1;transform:translateY(0)}.terminal-line .prompt{color:var(--terminal-green);font-weight:600}.terminal-line .cmd{color:var(--terminal-cyan)}.terminal-line .output{color:var(--terminal-text)}.terminal-line .output a{color:var(--terminal-cyan);cursor:pointer;text-decoration:underline}.terminal-line .output a:hover{opacity:.8}.terminal-body{position:relative}.terminal-logo{pointer-events:none;z-index:0;position:absolute;top:.5rem;left:50%;transform:translate(-80%)}.terminal-body>:not(.terminal-logo){z-index:1;position:relative}.terminal-logo-svg{width:min(240px,50vmin);height:min(240px,50vmin);color:var(--terminal-cyan);opacity:.7;filter:drop-shadow(0 0 4px #58a6ff26)}.faucet-switch{transform-origin:70px 20px;transition:transform .3s}.terminal-logo:hover .faucet-switch{transform:rotate(15deg)}.water-drop{opacity:0;animation:2.4s ease-in-out .6s infinite drip}@keyframes drip{0%,30%{opacity:0;transform:translateY(0)}35%,55%{opacity:1;transform:translateY(4px)}60%,to{opacity:0;transform:translateY(10px)}}.interactive-line{align-items:center;display:flex}.input-text{color:var(--terminal-text)}.scroll-indicator{display:none}section{padding:5rem 1.5rem}.section-alt{background:var(--color-bg-alt)}.section-container{max-width:var(--max-width);margin:0 auto}.section-title{text-align:center;margin-bottom:2.5rem;font-size:2rem;font-weight:700}.wireframe-title{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(16px)}.wireframe-title.visible{opacity:1;transform:translateY(0)}.wf-bracket{color:var(--color-accent);opacity:.5;font-family:SF Mono,Cascadia Code,Fira Code,Consolas,monospace;font-weight:300}.section:before{content:"";pointer-events:none;background-image:radial-gradient(circle,#2563eb0a 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0}.section{position:relative}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem;display:grid}.project-card{border:1px solid var(--color-border);border-radius:var(--radius);opacity:0;flex-direction:column;padding:1.5rem;transition:box-shadow .3s,transform .3s,border-color .3s;animation:.5s forwards cardIn;display:flex;position:relative;transform:translateY(20px)}.project-card:first-child{animation-delay:50ms}.project-card:nth-child(2){animation-delay:.1s}.project-card:nth-child(3){animation-delay:.15s}.project-card:nth-child(4){animation-delay:.2s}.project-card:nth-child(5){animation-delay:.25s}.project-card:nth-child(6){animation-delay:.3s}.project-card:nth-child(7){animation-delay:.35s}@keyframes cardIn{to{opacity:1;transform:translateY(0)}}.project-card:before{content:"";background:linear-gradient(90deg, var(--color-accent), transparent);border-radius:var(--radius) var(--radius) 0 0;opacity:0;height:3px;transition:opacity .3s;position:absolute;top:-1px;left:-1px;right:-1px}.project-card:hover:before{opacity:1}.project-card:hover{border-color:#0000;transform:translateY(-3px);box-shadow:0 8px 24px #00000014}.project-title{margin-bottom:.6rem;font-size:1.15rem;font-weight:700}.project-desc{color:var(--color-text-muted);flex:1;margin-bottom:1rem;font-size:.9rem;line-height:1.6}.project-tech{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.tech-tag{color:var(--color-accent);background:#eef2ff;border-radius:4px;padding:.2rem .6rem;font-size:.75rem;font-weight:500}.project-links{gap:1rem;display:flex}.project-link{font-size:.85rem;font-weight:600}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;display:grid}.skill-category{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(16px)}.skill-category.visible{opacity:1;transform:translateY(0)}.skill-category-title{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:.85rem;font-weight:600}.skill-list{flex-wrap:wrap;gap:.5rem;display:flex}.skill-chip{background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;padding:.35rem .85rem;font-size:.85rem;font-weight:500;transition:border-color .2s,color .2s,box-shadow .2s}.skill-chip:hover{border-color:var(--color-accent);color:var(--color-accent);box-shadow:0 0 0 2px #2563eb1a}.section-certs{background:var(--color-bg-alt)}.certs-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;display:grid}.cert-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);opacity:0;align-items:center;gap:1rem;padding:1rem 1.25rem;transition:box-shadow .2s,transform .2s;display:flex;transform:translateY(12px)}.cert-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.cert-card.visible{opacity:1;transition:opacity .4s,transform .4s;transform:translateY(0)}.cert-card.visible.delay-0{transition-delay:50ms}.cert-card.visible.delay-1{transition-delay:.1s}.cert-card.visible.delay-2{transition-delay:.15s}.cert-card.visible.delay-3{transition-delay:.2s}.cert-card.visible.delay-4{transition-delay:.25s}.cert-card.visible.delay-5{transition-delay:.3s}.cert-icon{flex-shrink:0;align-items:center;display:flex}.cert-info{flex-direction:column;flex:1;min-width:0;display:flex}.cert-title{color:var(--color-text);font-size:.95rem;font-weight:700}.cert-vendor{color:var(--color-text-muted);font-size:.8rem}.cert-status{white-space:nowrap;border-radius:999px;flex-shrink:0;padding:.25rem .6rem;font-size:.7rem;font-weight:600}.status-progress{color:#166534;background:#dcfce7}.status-planned{color:#6b7280;background:#f3f4f6;border:1px dashed #d1d5db}.contact-intro{text-align:center;color:var(--color-text-muted);margin-bottom:2rem}.contact-links{flex-direction:column;align-items:center;gap:1rem;display:flex}.contact-link{color:var(--color-text);border-radius:var(--radius);border:1px solid #0000;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:1rem;font-weight:500;transition:color .2s;display:flex}.contact-link:hover{color:var(--color-accent);border-color:var(--color-border);background:var(--color-bg-alt)}.contact-icon{font-size:1.2rem}.section-shareholder{background:linear-gradient(135deg, var(--color-bg) 0%, #e9542008 50%, var(--color-bg) 100%)}.section-subtitle{text-align:center;color:var(--color-muted);margin:-1.5rem 0 3rem;font-size:.95rem;font-style:italic}.shareholder-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem;display:grid}.shareholder-card{border:1px solid var(--color-border);border-radius:var(--radius);opacity:0;align-items:flex-start;gap:.75rem;padding:1.25rem;transition:opacity .5s,transform .5s,border-color .3s;display:flex;transform:translateY(12px)}.shareholder-card.visible{opacity:1;transform:translateY(0)}.shareholder-card:hover{border-color:#e95420}.shareholder-icon{flex-shrink:0;margin-top:.15rem;font-size:1.4rem}.shareholder-text{color:var(--color-muted);font-size:.88rem;line-height:1.5}.input-chars{color:var(--terminal-text);position:relative}.char-at-cursor{outline:1px solid var(--terminal-green);outline-offset:-1px;background:#ffffff1f}.cursor{color:var(--terminal-green);animation:1s step-end infinite blink}.cursor-at-end{margin-left:0}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.terminal-hero--docked{border-bottom:1px solid var(--terminal-border);width:100%;height:340px;max-height:340px;overflow:hidden}.terminal-hero--docked .terminal{height:340px;max-height:340px}.terminal-hero--docked .terminal-body{padding:.5rem .75rem;font-size:.85rem}.terminal-hero--docked .terminal-logo-svg{width:min(140px,30vmin);height:min(140px,30vmin)}.terminal-docked{transition:opacity .3s,max-height .3s;overflow:hidden}.terminal-hero--floating{z-index:9999;border:1px solid var(--terminal-border);cursor:default;border-radius:8px;width:640px;height:420px;position:fixed;overflow:hidden;box-shadow:0 8px 32px #00000080}.terminal-hero--floating .terminal{border-radius:8px}.terminal-hero--floating .terminal-titlebar{cursor:grab}.terminal-hero--floating .terminal-titlebar:active{cursor:grabbing}.terminal-floating{z-index:9999;pointer-events:auto;position:fixed}.popout-btn{color:var(--terminal-dim);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:.85rem;line-height:1;transition:color .2s,transform .2s}.popout-btn:hover{color:var(--terminal-text);transform:scale(1.2)}.detach-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:4px;padding:.15rem .4rem;font-size:.85rem;line-height:1;transition:color .2s,border-color .2s}.detach-btn:hover{color:var(--color-accent);border-color:var(--color-accent)}.gui-app{background:var(--color-bg);flex-direction:column;min-height:100dvh;display:flex}.gui-content{flex:1}.gui-loading{background:var(--terminal-bg);width:100vw;height:100dvh;color:var(--terminal-dim);justify-content:center;align-items:center;font-family:SF Mono,Cascadia Code,Fira Code,Consolas,monospace;font-size:.9rem;display:flex}.gui-loading:after{content:"Booting...";animation:1.2s ease-in-out infinite bootPulse}@keyframes bootPulse{0%,to{opacity:.4}50%{opacity:1}}.section-loading{min-height:100px}.footer{text-align:center;border-top:1px solid var(--color-border);color:var(--color-text-muted);padding:2rem 1.5rem;font-size:.85rem}@media (width<=640px){.terminal-body{min-height:200px;padding:1rem;font-size:.85rem}.projects-grid,.skills-grid,.certs-grid{grid-template-columns:1fr}}
