@import "https://fonts.googleapis.com/css2?family=Saira+Condensed:wght@400;500;600&family=Space+Grotesk:wght@400;500;600&display=swap";
.typewriter{display:inline}.typewriter-caret{color:var(--color-text-muted);margin-left:2px;font-weight:400;animation:.9s steps(2,end) infinite typewriter-caret;display:inline-block}[data-theme=dark] .typewriter-caret{color:var(--lcars-blue)}@keyframes typewriter-caret{0%,50%{opacity:1}51%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.typewriter-caret{animation:none;display:none}}
.portfolio-nav{justify-content:center;gap:var(--spacing-xl);padding:var(--spacing-md)var(--spacing-xl);max-width:1200px;margin:0 auto;display:flex}.portfolio-nav-link{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);transition:color var(--transition-fast);font-family:Saira Condensed,IBM Plex Mono,monospace;font-size:.875rem;font-weight:500;text-decoration:none}.portfolio-nav-link:hover{color:var(--color-accent-warm)}[data-theme=dark] .portfolio-nav-link:hover{color:#6b8caf}.portfolio-container{max-width:880px;margin:0 auto var(--spacing-2xl);padding:0 var(--spacing-lg);gap:var(--spacing-2xl);flex-direction:column;display:flex}.portfolio-hero{gap:var(--spacing-xl);padding:var(--spacing-xl);background:var(--color-bg-secondary);border:1px solid var(--color-border-medium);border-left:3px solid var(--color-accent-warm);box-shadow:var(--shadow-medium);border-radius:28px 4px 4px;grid-template-columns:auto 1fr;align-items:center;display:grid}[data-theme=dark] .portfolio-hero{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-left:3px solid var(--lcars-blue)}.portfolio-hero-avatar{background:var(--color-bg-secondary);width:200px;height:200px;box-shadow:0 0 0 2px var(--color-accent-warm),var(--shadow-light);border-radius:50%;flex-shrink:0;position:relative;overflow:hidden}.portfolio-hero-avatar img{object-fit:cover;width:100%;height:100%;display:block}[data-theme=dark] .portfolio-hero-avatar{box-shadow:0 0 0 2px var(--lcars-blue),var(--shadow-medium)}.portfolio-hero-text{flex-direction:column;gap:8px;display:flex;position:relative}.portfolio-hero-controls{gap:8px;display:inline-flex;position:absolute;top:0;right:0}.portfolio-code{letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-warm);font-family:Saira Condensed,IBM Plex Mono,monospace;font-size:.75rem;font-weight:500;line-height:1}[data-theme=dark] .portfolio-code{color:var(--lcars-blue)}.portfolio-name{color:var(--color-text-primary);letter-spacing:.5px;margin:4px 0 0;font-family:Space Grotesk,Source Sans Pro,sans-serif;font-size:2.5rem;font-weight:600;line-height:1.05}[data-theme=dark] .portfolio-name{color:#979ca5}.portfolio-tagline{color:var(--color-text-secondary);margin:0;font-family:Source Sans Pro,sans-serif;font-size:1.125rem;line-height:1.4}.portfolio-section{gap:var(--spacing-md);flex-direction:column;display:flex}.portfolio-section-head{align-items:center;gap:var(--spacing-md);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border-light);display:flex}.portfolio-section-name{color:var(--color-text-primary);font-family:Space Grotesk,Source Sans Pro,sans-serif;font-size:1.0625rem;font-weight:500}.portfolio-section-code{letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-warm);border:1px solid var(--color-border-light);border-radius:2px;margin-left:auto;padding:2px 6px;font-family:Saira Condensed,IBM Plex Mono,monospace;font-size:.6875rem;font-weight:500;line-height:1}[data-theme=dark] .portfolio-section-code{color:var(--color-text-muted)}.portfolio-prose{color:var(--color-text-primary);font-family:Source Sans Pro,sans-serif;font-size:1.0625rem;line-height:1.7}.portfolio-prose p{margin:0 0 var(--spacing-md)0}.portfolio-prose p:last-child{margin-bottom:0}.portfolio-about-list{margin:0 0 var(--spacing-md)0;flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.portfolio-about-list li{color:var(--color-text-primary);padding-left:24px;font-family:Source Sans Pro,sans-serif;font-size:1.0625rem;line-height:1.55;position:relative}.portfolio-about-list li:before{content:"";background:var(--color-accent-warm);opacity:.85;border-radius:1px;width:12px;height:2px;position:absolute;top:.7em;left:0}[data-theme=dark] .portfolio-about-list li:before{opacity:.85;background:#6b8caf}.portfolio-about-closer{margin:var(--spacing-md)0 0 0;color:var(--color-text-secondary);font-style:italic;line-height:1.6}.portfolio-profile{gap:var(--spacing-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.portfolio-profile li{gap:var(--spacing-md);padding:var(--spacing-sm)0;border-bottom:1px dashed var(--color-border-light);grid-template-columns:140px 1fr;align-items:baseline;display:grid}.portfolio-profile li:last-child{border-bottom:none}.portfolio-profile-label{letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent-warm);font-family:Saira Condensed,IBM Plex Mono,monospace;font-size:.75rem}[data-theme=dark] .portfolio-profile-label{color:var(--lcars-blue)}.portfolio-profile-value{color:var(--color-text-primary);font-family:Source Sans Pro,sans-serif;font-size:1rem;line-height:1.5}.portfolio-elsewhere{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin:0;padding:0;list-style:none;display:grid}.portfolio-link{padding:var(--spacing-md);background:var(--color-bg-card);border:1px solid var(--color-border-light);color:inherit;transition:all var(--transition-fast);border-radius:12px 4px 4px;flex-direction:column;gap:4px;text-decoration:none;display:flex;position:relative}.portfolio-link:hover{border-color:var(--color-accent-warm);box-shadow:var(--shadow-light);transform:translateY(-1px)}.portfolio-link:before{content:"";background:var(--color-accent-warm);opacity:.55;width:3px;transition:opacity var(--transition-fast);border-radius:2px 0 0 2px;position:absolute;top:8px;bottom:8px;left:0}.portfolio-link:hover:before{opacity:1}[data-theme=dark] .portfolio-link:before{background:var(--lcars-blue)}[data-theme=dark] .portfolio-link:hover{border-color:var(--color-primary)}.portfolio-link-name{color:var(--color-text-primary);font-family:Space Grotesk,Source Sans Pro,sans-serif;font-size:.9375rem;font-weight:600}.portfolio-link-host{letter-spacing:.04em;color:var(--color-text-muted);font-family:Saira Condensed,IBM Plex Mono,monospace;font-size:.75rem}@keyframes portfolio-row-show{to{opacity:1}}.portfolio-about-list li,.portfolio-about-closer,.portfolio-profile li{opacity:0;animation:.15s ease-out forwards portfolio-row-show}.portfolio-about-list li:first-child{animation-delay:.2s}.portfolio-about-list li:nth-child(2){animation-delay:.75s}.portfolio-about-list li:nth-child(3){animation-delay:1.35s}.portfolio-about-list li:nth-child(4){animation-delay:1.95s}.portfolio-about-list li:nth-child(5){animation-delay:2.4s}.portfolio-about-list li:nth-child(6){animation-delay:3.1s}.portfolio-about-list li:nth-child(7){animation-delay:3.9s}.portfolio-about-closer{animation-delay:4.8s}.portfolio-profile li:first-child{animation-delay:.3s}.portfolio-profile li:nth-child(2){animation-delay:.7s}.portfolio-profile li:nth-child(3){animation-delay:1.1s}@media (prefers-reduced-motion:reduce){.portfolio-about-list li,.portfolio-about-closer,.portfolio-profile li{opacity:1;animation:none}}@keyframes portfolio-materialise{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.portfolio-elsewhere li{opacity:0;animation:1s cubic-bezier(.2,.8,.3,1.1) forwards portfolio-materialise}.portfolio-elsewhere li:first-child{animation-delay:.5s}.portfolio-elsewhere li:nth-child(2){animation-delay:.8s}.portfolio-elsewhere li:nth-child(3){animation-delay:1.1s}.portfolio-elsewhere li:nth-child(4){animation-delay:1.4s}.portfolio-elsewhere li:nth-child(5){animation-delay:1.7s}.portfolio-elsewhere li:nth-child(6){animation-delay:2s}@media (prefers-reduced-motion:reduce){.portfolio-profile li,.portfolio-elsewhere li{opacity:1;animation:none;transform:none}}@media (max-width:720px){.portfolio-hero{text-align:center;padding:var(--spacing-lg);grid-template-columns:1fr}.portfolio-hero-avatar{width:140px;height:140px;margin:0 auto}.portfolio-hero-text{align-items:center}.portfolio-hero-controls{margin-top:8px;position:static}.portfolio-name{font-size:2rem}.portfolio-profile li{grid-template-columns:1fr;gap:4px}}
