.kevin-olsen-projects{padding:var(--spacing-3xl) var(--spacing-lg);background-color:var(--color-background);position:relative}.kevin-olsen-projects-container{max-width:1200px;margin:0 auto}.kevin-olsen-projects-header{margin-bottom:var(--spacing-2xl)}.kevin-olsen-projects-comment{display:block;color:var(--color-text-muted);font-family:var(--font-primary);font-size:var(--text-sm);font-style:italic;margin-bottom:var(--spacing-sm)}.kevin-olsen-projects-title{font-family:var(--font-primary);font-size:var(--text-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.kevin-olsen-projects-bracket{color:var(--color-secondary)}.kevin-olsen-projects-const{color:var(--color-primary);text-shadow:0 0 10px rgba(0,217,255,.3)}.kevin-olsen-projects-equals{color:var(--color-warning)}.kevin-olsen-projects-filters{margin-bottom:var(--spacing-2xl);padding:var(--spacing-lg);background-color:var(--color-surface);border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius)}.kevin-olsen-projects-filter-label{font-family:var(--font-primary);font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-md);display:flex;gap:var(--spacing-xs)}.kevin-olsen-projects-filter-prompt{color:var(--color-accent)}.kevin-olsen-projects-filter-cmd{color:var(--color-secondary)}.kevin-olsen-projects-filter-buttons{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.kevin-olsen-projects-filter-btn{font-family:var(--font-primary);font-size:var(--text-sm);padding:var(--spacing-sm) var(--spacing-lg);background-color:rgba(0,0,0,.3);border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius);color:var(--color-text-secondary);cursor:pointer;transition:all .3s ease}.kevin-olsen-projects-filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 0 10px rgba(0,217,255,.2)}.kevin-olsen-projects-filter-active{background-color:var(--color-primary);color:var(--color-background);border-color:var(--color-primary);box-shadow:0 0 15px rgba(0,217,255,.4)}.kevin-olsen-projects-filter-bracket{color:var(--color-secondary);font-weight:var(--font-weight-bold)}.kevin-olsen-projects-filter-active .kevin-olsen-projects-filter-bracket{color:var(--color-background)}.kevin-olsen-projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-2xl);padding:12px}.kevin-olsen-projects-card{background-color:var(--color-surface);border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius);overflow:visible;transition:all .3s ease;display:flex;flex-direction:column;position:relative}.kevin-olsen-projects-card:hover{border-color:var(--color-primary);box-shadow:0 0 30px rgba(0,217,255,.2);transform:translateY(-4px)}.kevin-olsen-projects-card-header{padding:var(--spacing-md);background-color:rgba(0,0,0,.3);border-bottom:var(--border-width) var(--border-style) var(--color-border);display:flex;justify-content:space-between;align-items:center}.kevin-olsen-projects-command{font-family:var(--font-primary);font-size:var(--text-xs);color:var(--color-text-muted);display:flex;gap:var(--spacing-xs)}.kevin-olsen-projects-prompt{color:var(--color-accent)}.kevin-olsen-projects-cmd{color:var(--color-secondary)}.kevin-olsen-projects-badges{display:flex;gap:var(--spacing-sm);align-items:center}.kevin-olsen-projects-category{font-family:var(--font-primary);font-size:var(--text-xs);color:var(--color-primary);padding:var(--spacing-xs) var(--spacing-sm);background-color:rgba(0,217,255,.1);border:1px solid rgba(0,217,255,.3);border-radius:var(--border-radius);text-transform:lowercase}.kevin-olsen-projects-year{font-family:var(--font-primary);font-size:var(--text-xs);color:var(--color-text-muted)}.kevin-olsen-projects-card-body{padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-md);flex:1}.kevin-olsen-projects-card-title{font-family:var(--font-primary);font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0;line-height:var(--line-height-tight)}.kevin-olsen-projects-title-bracket{color:var(--color-primary)}.kevin-olsen-projects-description{font-family:var(--font-primary);font-size:var(--text-sm);line-height:var(--line-height-relaxed);color:var(--color-text-primary);margin:0;flex:1}.kevin-olsen-projects-desc-comment{color:var(--color-text-muted);font-style:italic}.kevin-olsen-projects-tech{padding:var(--spacing-md);background-color:rgba(0,0,0,.3);border:var(--border-width) var(--border-style) rgba(0,217,255,.2);border-radius:var(--border-radius);position:relative}.kevin-olsen-projects-tech-label{font-family:var(--font-primary);font-size:var(--text-xs);color:var(--color-secondary);margin-bottom:var(--spacing-xs);text-transform:uppercase}.kevin-olsen-projects-tech-edit-btn{position:absolute;top:8px;right:8px;background:var(--color-primary);color:var(--color-background);border:none;border-radius:50%;padding:0;font-size:var(--text-xs);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:24px;height:24px;opacity:.8;z-index:10;box-shadow:0 2px 4px rgba(0,0,0,.2)}.kevin-olsen-projects-tech-edit-btn:hover{background:var(--color-secondary);opacity:1;transform:translateY(-1px) scale(1.05);box-shadow:0 4px 8px rgba(0,217,255,.4)}.kevin-olsen-projects-tech-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.kevin-olsen-projects-tech-item{font-family:var(--font-primary);font-size:var(--text-xs);padding:var(--spacing-xs) var(--spacing-sm);background-color:rgba(0,217,255,.1);border:1px solid rgba(0,217,255,.3);border-radius:var(--border-radius);color:var(--color-primary)}.kevin-olsen-projects-links{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.kevin-olsen-projects-link{font-family:var(--font-primary);font-size:var(--text-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:transparent;border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius);color:var(--color-text-secondary);text-decoration:none;transition:all .3s ease;display:inline-flex;align-items:center;gap:var(--spacing-xs)}.kevin-olsen-projects-link:hover{border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 0 10px rgba(0,217,255,.3)}.kevin-olsen-projects-link-bracket{color:var(--color-secondary);font-weight:var(--font-weight-bold)}.kevin-olsen-projects-link:hover .kevin-olsen-projects-link-bracket{color:var(--color-primary)}.kevin-olsen-projects-footer{font-family:var(--font-primary);font-size:var(--text-3xl);color:var(--color-secondary);display:flex;gap:var(--spacing-xs)}.kevin-olsen-projects-semicolon{color:var(--color-secondary)}@media (max-width:768px){.kevin-olsen-projects{padding:var(--spacing-2xl) var(--spacing-md)}.kevin-olsen-projects-title{font-size:var(--text-2xl)}.kevin-olsen-projects-grid{grid-template-columns:1fr}.kevin-olsen-projects-filters{padding:var(--spacing-md)}.kevin-olsen-projects-filter-buttons{gap:var(--spacing-sm)}.kevin-olsen-projects-filter-btn{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--text-xs)}.kevin-olsen-projects-card-body{padding:var(--spacing-lg)}}.kevin-olsen-projects-editable-category,.kevin-olsen-projects-editable-comment,.kevin-olsen-projects-editable-filter,.kevin-olsen-projects-editable-link,.kevin-olsen-projects-editable-project-title,.kevin-olsen-projects-editable-tech,.kevin-olsen-projects-editable-title,.kevin-olsen-projects-editable-year{background:transparent;border:1px solid transparent;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;outline:none;padding:var(--spacing-xs);border-radius:var(--border-radius);transition:all .2s ease;min-width:0;line-height:1.5;vertical-align:top;display:inline-block}.kevin-olsen-projects-editable-category:hover,.kevin-olsen-projects-editable-comment:hover,.kevin-olsen-projects-editable-filter:hover,.kevin-olsen-projects-editable-link:hover,.kevin-olsen-projects-editable-project-title:hover,.kevin-olsen-projects-editable-tech:hover,.kevin-olsen-projects-editable-title:hover,.kevin-olsen-projects-editable-year:hover{border-color:var(--color-primary);background:rgba(0,217,255,.05)}.kevin-olsen-projects-editable-category:focus,.kevin-olsen-projects-editable-comment:focus,.kevin-olsen-projects-editable-filter:focus,.kevin-olsen-projects-editable-link:focus,.kevin-olsen-projects-editable-project-title:focus,.kevin-olsen-projects-editable-tech:focus,.kevin-olsen-projects-editable-title:focus,.kevin-olsen-projects-editable-year:focus{border-color:var(--color-primary);background:rgba(0,217,255,.1);box-shadow:0 0 0 2px rgba(0,217,255,.2)}.kevin-olsen-projects-editable-category{background:rgba(0,0,0,.3);border:1px solid rgba(0,217,255,.3);color:var(--color-primary);padding:var(--spacing-xs);border-radius:var(--border-radius);font-size:inherit;font-family:inherit;text-transform:lowercase}.kevin-olsen-projects-editable-category:hover{border-color:var(--color-primary);background:rgba(0,217,255,.05)}.kevin-olsen-projects-editable-category:focus{border-color:var(--color-primary);background:rgba(0,217,255,.1);box-shadow:0 0 0 2px rgba(0,217,255,.2)}.kevin-olsen-projects-rich-text-editor{background:transparent!important;border:1px solid transparent!important;border-radius:var(--border-radius)!important;color:var(--color-text-primary)!important;font-family:var(--font-primary)!important;font-size:var(--text-base)!important;line-height:var(--line-height-relaxed)!important;min-height:80px!important;transition:all .2s ease!important}.kevin-olsen-projects-rich-text-editor:hover{border-color:var(--color-primary)!important;background:rgba(0,217,255,.05)!important}.kevin-olsen-projects-rich-text-editor:focus-within{border-color:var(--color-primary)!important;background:rgba(0,217,255,.1)!important;box-shadow:0 0 0 2px rgba(0,217,255,.2)!important}.kevin-olsen-projects-rich-text-editor .ProseMirror{background:transparent!important;color:var(--color-text-primary)!important;font-family:var(--font-primary)!important;font-size:var(--text-base)!important;line-height:var(--line-height-relaxed)!important;padding:var(--spacing-sm)!important;outline:none!important}.kevin-olsen-projects-rich-text-editor .ProseMirror p{margin-bottom:var(--spacing-md)!important;color:var(--color-text-primary)!important}.kevin-olsen-projects-rich-text-editor .ProseMirror strong{color:var(--color-primary)!important;font-weight:var(--font-weight-bold)!important}.kevin-olsen-projects-rich-text-editor .ProseMirror em{color:var(--color-secondary)!important;font-style:italic!important}.kevin-olsen-projects-rich-text-editor .rich-text-toolbar{background:var(--color-surface)!important;border-bottom:1px solid var(--color-border)!important;padding:var(--spacing-xs)!important}.kevin-olsen-projects-rich-text-editor .rich-text-toolbar button{background:transparent!important;border:1px solid transparent!important;color:var(--color-text-secondary)!important;padding:var(--spacing-xs) var(--spacing-sm)!important;border-radius:var(--border-radius)!important;transition:all .2s ease!important}.kevin-olsen-projects-rich-text-editor .rich-text-toolbar button:hover{background:var(--color-primary)!important;color:var(--color-background)!important;border-color:var(--color-primary)!important}.kevin-olsen-projects-rich-text-editor .rich-text-toolbar button.active{background:var(--color-secondary)!important;color:var(--color-background)!important;border-color:var(--color-secondary)!important}.kevin-olsen-projects-add-btn,.kevin-olsen-projects-add-filter-btn,.kevin-olsen-projects-add-tech-btn,.kevin-olsen-projects-remove-btn,.kevin-olsen-projects-remove-filter-btn,.kevin-olsen-projects-remove-tech-btn{background:var(--color-primary);color:var(--color-background);border:none;border-radius:var(--border-radius);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--text-sm);font-family:var(--font-primary);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:var(--spacing-xs);white-space:nowrap}.kevin-olsen-projects-remove-btn,.kevin-olsen-projects-remove-filter-btn,.kevin-olsen-projects-remove-tech-btn{background:var(--color-error)}.kevin-olsen-projects-add-btn:hover,.kevin-olsen-projects-add-filter-btn:hover,.kevin-olsen-projects-add-tech-btn:hover,.kevin-olsen-projects-remove-btn:hover{background:var(--color-secondary);transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,217,255,.3)}.kevin-olsen-projects-remove-filter-btn:hover,.kevin-olsen-projects-remove-tech-btn:hover{background:#ff3333;transform:translateY(-1px)}.kevin-olsen-projects-remove-btn{position:absolute;top:-6px;right:-6px;z-index:10;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;font-size:var(--text-xs);opacity:.9;transition:all .2s ease;box-shadow:0 2px 6px rgba(0,0,0,.3)}.kevin-olsen-projects-remove-btn:hover{opacity:1;transform:translateY(-1px) scale(1.1);box-shadow:0 4px 8px rgba(0,0,0,.3)}.kevin-olsen-projects-add-item{display:flex;justify-content:center;padding:var(--spacing-xl) 0}.kevin-olsen-projects-add-btn{background:transparent;border:2px dashed var(--color-border);color:var(--color-text-secondary);padding:var(--spacing-lg) var(--spacing-xl);font-size:var(--text-base)}.kevin-olsen-projects-add-btn:hover{color:var(--color-primary);border-color:var(--color-primary);background:rgba(0,217,255,.05)}.kevin-olsen-projects-filter-wrapper{position:relative;display:inline-block}.kevin-olsen-projects-remove-filter-btn{position:absolute;top:-8px;right:-8px;z-index:2;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;font-size:8px;opacity:.8;transition:all .2s ease}.kevin-olsen-projects-add-filter-btn{margin-left:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius);background:rgba(0,0,0,.4);border:1px dashed rgba(0,217,255,.4);color:var(--color-secondary);font-family:var(--font-primary);font-size:var(--text-xs);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);transition:all .3s ease;position:relative;overflow:hidden;text-transform:lowercase}.kevin-olsen-projects-add-filter-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(0,217,255,.1) 50%,transparent);transition:left .5s ease}.kevin-olsen-projects-add-filter-btn:hover:before{left:100%}.kevin-olsen-projects-add-filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:rgba(0,217,255,.05);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,217,255,.2),0 0 20px rgba(0,217,255,.1)}.kevin-olsen-projects-add-filter-text{font-weight:var(--font-weight-medium);letter-spacing:.5px}.kevin-olsen-projects-tech-editor{display:inline-flex;align-items:center;gap:var(--spacing-xs);position:relative}.kevin-olsen-projects-remove-tech-btn{width:16px;height:16px;padding:0;border-radius:50%;font-size:8px;margin-left:var(--spacing-xs)}.kevin-olsen-projects-add-tech-btn{margin-left:var(--spacing-sm);padding:var(--spacing-xs);border-radius:50%;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center}.kevin-olsen-projects-link-wrapper{display:block;margin-bottom:var(--spacing-xs)}.kevin-olsen-projects-link-editor{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.kevin-olsen-projects-link-editor .kevin-olsen-projects-editable-link{flex:1;min-width:200px}@media (max-width:768px){.kevin-olsen-projects-editable-project-title{font-size:var(--text-sm)}.kevin-olsen-projects-remove-btn{width:20px;height:20px;top:-6px;right:-6px}.kevin-olsen-projects-add-btn{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm)}.kevin-olsen-projects-link-editor{flex-direction:column;align-items:stretch}.kevin-olsen-projects-link-editor .kevin-olsen-projects-editable-link{min-width:unset}}.kevin-olsen-projects-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:1000}.kevin-olsen-projects-modal{background:var(--color-surface);border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius);width:90%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 10px 30px rgba(0,0,0,.5)}.kevin-olsen-projects-modal-header{padding:var(--spacing-lg);border-bottom:var(--border-width) var(--border-style) var(--color-border);display:flex;justify-content:space-between;align-items:center;background:rgba(0,0,0,.1)}.kevin-olsen-projects-modal-header h3{font-family:var(--font-primary);font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.kevin-olsen-projects-modal-close-btn{background:transparent;border:none;color:var(--color-text-secondary);font-size:var(--text-xl);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--border-radius);transition:all .2s ease;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.kevin-olsen-projects-modal-close-btn:hover{background:var(--color-error);color:var(--color-background)}.kevin-olsen-projects-modal-body{padding:var(--spacing-lg);flex:1;overflow-y:auto}.kevin-olsen-projects-modal-tech-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.kevin-olsen-projects-modal-tech-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);background:rgba(0,0,0,.1);border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius);transition:all .2s ease}.kevin-olsen-projects-modal-tech-item:hover{border-color:var(--color-primary)}.kevin-olsen-projects-modal-tech-input{flex:1;background:transparent;border:1px solid transparent;color:var(--color-text-primary);font-family:var(--font-primary);font-size:var(--text-sm);padding:var(--spacing-xs);border-radius:var(--border-radius);transition:all .2s ease}.kevin-olsen-projects-modal-tech-input:hover{border-color:var(--color-primary)}.kevin-olsen-projects-modal-tech-input:focus{border-color:var(--color-primary);outline:none}.kevin-olsen-projects-modal-remove-tech-btn{background:var(--color-error);color:var(--color-background);border:none;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.kevin-olsen-projects-modal-remove-tech-btn:hover{background:#ff3333}.kevin-olsen-projects-modal-add-tech-btn{background:transparent;border:2px dashed var(--color-border);color:var(--color-text-secondary);border-radius:var(--border-radius);padding:var(--spacing-md);font-family:var(--font-primary);font-size:var(--text-sm);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.kevin-olsen-projects-modal-add-tech-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.kevin-olsen-projects-modal-footer{padding:var(--spacing-lg);border-top:var(--border-width) var(--border-style) var(--color-border);display:flex;justify-content:flex-end;gap:var(--spacing-md);background:rgba(0,0,0,.05)}.kevin-olsen-projects-modal-cancel-btn,.kevin-olsen-projects-modal-save-btn{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--border-radius);font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease;border:var(--border-width) var(--border-style)}.kevin-olsen-projects-modal-cancel-btn{background:transparent;border-color:var(--color-border);color:var(--color-text-secondary)}.kevin-olsen-projects-modal-cancel-btn:hover{border-color:var(--color-text-secondary);color:var(--color-text-primary)}.kevin-olsen-projects-modal-save-btn{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-background)}.kevin-olsen-projects-modal-save-btn:hover{background:var(--color-secondary);border-color:var(--color-secondary)}@media (max-width:768px){.kevin-olsen-projects-modal{width:95%;max-height:90vh}.kevin-olsen-projects-modal-body,.kevin-olsen-projects-modal-footer,.kevin-olsen-projects-modal-header{padding:var(--spacing-md)}}