.andrew-johnson-resume-projects{padding:0;background:var(--color-background);display:flex;flex-direction:column;gap:var(--spacing-lg);align-items:flex-start;width:100%;max-width:930px}.andrew-johnson-resume-projects-header{display:flex;gap:var(--spacing-md);align-items:center}.andrew-johnson-resume-projects-header-title{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-2xl);line-height:var(--line-height-tight);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-tight);white-space:nowrap}.andrew-johnson-resume-projects-header-comment{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-base);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.andrew-johnson-resume-projects-filters{width:100%;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center}.andrew-johnson-resume-projects-filter-chip{padding:6px 14px;border-radius:var(--border-radius-full);background-color:rgba(var(--color-primary-rgb),.08);color:var(--color-text-primary);font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-xs);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.andrew-johnson-resume-projects-grid{width:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);position:relative}.andrew-johnson-resume-projects-card{background-color:var(--color-surface);position:relative;border-radius:var(--border-radius-md);width:100%;border:var(--border-width) var(--border-style) var(--card-border);transition:all .3s ease;overflow:hidden}.andrew-johnson-resume-projects-card:hover{border-color:var(--color-primary);box-shadow:0 0 25px rgba(var(--color-primary-rgb),.2);transform:translateY(-4px)}.andrew-johnson-resume-projects-card-link{display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:center;justify-content:center;padding:var(--spacing-md);height:100%;text-decoration:none}.andrew-johnson-resume-projects-card-image{width:100%;aspect-ratio:425/330;position:relative;border-radius:var(--border-radius-normal);overflow:hidden}.andrew-johnson-resume-projects-card-image-inner{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .5s ease}.andrew-johnson-resume-projects-card:hover .andrew-johnson-resume-projects-card-image-inner{transform:scale(1.05)}.andrew-johnson-resume-projects-card-info{width:100%;display:flex;align-items:flex-start;justify-content:space-between;padding:var(--spacing-sm) 0;gap:var(--spacing-md)}.andrew-johnson-resume-projects-card-header-right{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.andrew-johnson-resume-projects-card-title-container{display:flex;flex-direction:column;gap:var(--spacing-xs);align-items:flex-start;flex:1;min-width:0}.andrew-johnson-resume-projects-card-title{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-2xl);line-height:var(--line-height-tight);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-tight);transition:color .3s ease;word-break:break-word}.andrew-johnson-resume-projects-card:hover .andrew-johnson-resume-projects-card-title{color:var(--color-primary)}.andrew-johnson-resume-projects-card-details{display:flex;gap:var(--spacing-sm);align-items:center;justify-content:center}.andrew-johnson-resume-projects-card-category{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary);letter-spacing:var(--letter-spacing-tight);white-space:nowrap}.andrew-johnson-resume-projects-card-dot{width:5px;height:5px;background-color:var(--color-text-muted);border-radius:var(--border-radius-full);flex-shrink:0}.andrew-johnson-resume-projects-card-pages{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary);letter-spacing:var(--letter-spacing-tight);white-space:nowrap}.andrew-johnson-resume-projects-card-status{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-xs);line-height:var(--line-height-normal);color:var(--color-primary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.andrew-johnson-resume-projects-card-icon-container{background-color:var(--color-border);width:48px;height:48px;position:relative;border-radius:var(--border-radius-full);overflow:hidden;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.andrew-johnson-resume-projects-card:hover .andrew-johnson-resume-projects-card-icon-container{background-color:var(--color-primary);transform:scale(1.1)}.andrew-johnson-resume-projects-card-icon{width:24px;height:24px;object-fit:contain;transition:transform .3s ease}.andrew-johnson-resume-projects-card:hover .andrew-johnson-resume-projects-card-icon{transform:translateX(2px)}.andrew-johnson-resume-projects-card-icon-border{position:absolute;inset:0;border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius-full);pointer-events:none;transition:border-color .3s ease}.andrew-johnson-resume-projects-card:hover .andrew-johnson-resume-projects-card-icon-border{border-color:var(--color-primary)}.andrew-johnson-resume-projects-card-border{position:absolute;inset:0;border:var(--border-width) var(--border-style) var(--card-border);border-radius:var(--border-radius-md);pointer-events:none}.andrew-johnson-resume-projects-card-description{width:100%;font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);letter-spacing:var(--letter-spacing-tight)}.andrew-johnson-resume-projects-card-description p{margin:0}.andrew-johnson-resume-projects-card-technologies{width:100%;display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.andrew-johnson-resume-projects-card-technology{padding:4px 10px;border-radius:var(--border-radius-sm);background-color:rgba(var(--color-primary-rgb),.08);color:var(--color-text-primary);font-family:var(--font-primary);font-size:var(--text-xs);letter-spacing:var(--letter-spacing-wide)}.andrew-johnson-resume-projects-card-cta{display:flex;align-items:center;justify-content:flex-end}.andrew-johnson-resume-projects-card-cta-button{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:var(--border-radius-normal);border:var(--border-width) var(--border-style) var(--color-border);background-color:transparent;font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-xs);letter-spacing:var(--letter-spacing-wide);color:var(--color-text-primary);text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:all .3s ease;cursor:pointer}.andrew-johnson-resume-projects-card-cta-button:hover{border-color:var(--color-primary);color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.08);box-shadow:0 0 15px rgba(var(--color-primary-rgb),.2);transform:translateY(-1px)}.andrew-johnson-resume-projects-load-more{width:100%;display:flex;justify-content:center;align-items:center;padding-top:var(--spacing-2xl)}.andrew-johnson-resume-projects-load-more-button{background-color:var(--color-border);height:40px;padding:0 var(--spacing-xl);border-radius:var(--border-radius-normal);border:var(--border-width) var(--border-style) transparent;cursor:pointer;font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-sm);line-height:var(--line-height-tight);color:var(--color-text-primary);text-align:center;transition:all .3s ease}.andrew-johnson-resume-projects-load-more-button:hover{background-color:var(--color-primary);color:var(--color-background);border-color:var(--color-primary);box-shadow:0 0 20px rgba(var(--color-primary-rgb),.4);transform:translateY(-2px)}@media (max-width:1024px){.andrew-johnson-resume-projects-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.andrew-johnson-resume-projects-card{max-width:100%}}@media (max-width:768px){.andrew-johnson-resume-projects{padding:0 var(--spacing-lg)}}@media (max-width:480px){.andrew-johnson-resume-projects{padding:0 var(--spacing-md);gap:var(--spacing-md)}.andrew-johnson-resume-projects-card-title,.andrew-johnson-resume-projects-header-title{font-size:var(--text-xl)}.andrew-johnson-resume-projects-card-info{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.andrew-johnson-resume-projects-card-header-right{width:100%;justify-content:flex-start}.andrew-johnson-resume-projects-card-cta{width:100%}.andrew-johnson-resume-projects-card-cta-button{width:100%;justify-content:center}}.andrew-johnson-resume-projects-card-editing{position:relative}.andrew-johnson-resume-projects-remove-btn{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);width:28px;height:28px;border-radius:var(--border-radius-sm);background-color:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#ef4444;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10}.andrew-johnson-resume-projects-remove-btn:hover{background-color:#ef4444;color:white;border-color:#ef4444}.andrew-johnson-resume-projects-editable-category,.andrew-johnson-resume-projects-editable-comment,.andrew-johnson-resume-projects-editable-demo,.andrew-johnson-resume-projects-editable-filter,.andrew-johnson-resume-projects-editable-project-title,.andrew-johnson-resume-projects-editable-tech,.andrew-johnson-resume-projects-editable-title,.andrew-johnson-resume-projects-editable-year{background:transparent;border:none;border-bottom:2px dashed var(--color-border);font:inherit;color:inherit;padding:2px 4px;margin:-2px -4px;transition:all .2s ease}.andrew-johnson-resume-projects-editable-category:focus,.andrew-johnson-resume-projects-editable-comment:focus,.andrew-johnson-resume-projects-editable-demo:focus,.andrew-johnson-resume-projects-editable-filter:focus,.andrew-johnson-resume-projects-editable-project-title:focus,.andrew-johnson-resume-projects-editable-tech:focus,.andrew-johnson-resume-projects-editable-title:focus,.andrew-johnson-resume-projects-editable-year:focus{outline:none;border-bottom-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.05)}.andrew-johnson-resume-projects-editable-title{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-2xl);color:var(--color-text-primary)}.andrew-johnson-resume-projects-editable-comment{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-base);color:var(--color-text-secondary)}.andrew-johnson-resume-projects-editable-project-title{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-2xl);color:var(--color-text-primary)}.andrew-johnson-resume-projects-category-select,.andrew-johnson-resume-projects-editable-year{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);color:var(--color-text-secondary)}.andrew-johnson-resume-projects-category-select{background-color:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--border-radius-sm);cursor:pointer;transition:all .2s ease;appearance:none;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='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;padding:4px 24px 4px 8px}.andrew-johnson-resume-projects-category-select:focus{outline:none;border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.05)}.andrew-johnson-resume-projects-category-select:hover{border-color:var(--color-primary)}.andrew-johnson-resume-projects-category-select option{background-color:var(--color-surface);color:var(--color-text-primary);padding:8px}.andrew-johnson-resume-projects-editable-demo{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-xs);color:var(--color-text-primary);padding:6px 10px;border:1px dashed var(--color-border);border-radius:var(--border-radius-normal)}.andrew-johnson-resume-projects-filter-chip-editing{display:inline-flex;align-items:center;gap:4px;border:1px dashed var(--color-border)}.andrew-johnson-resume-projects-editable-filter{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-xs);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-primary);padding:0!important;margin:0!important;border-bottom:none!important}.andrew-johnson-resume-projects-editable-filter:focus{border-bottom:none!important;background-color:transparent!important}.andrew-johnson-resume-projects-remove-filter-btn{width:16px;height:16px;border-radius:50%;background-color:transparent;border:none;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.andrew-johnson-resume-projects-remove-filter-btn:hover{background-color:rgba(239,68,68,.1);color:#ef4444}.andrew-johnson-resume-projects-add-filter-btn{width:28px;height:28px;border-radius:var(--border-radius-full);background-color:rgba(var(--color-primary-rgb),.1);border:1px solid var(--color-primary);color:var(--color-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.andrew-johnson-resume-projects-add-filter-btn:hover{background-color:var(--color-primary);color:white}.andrew-johnson-resume-projects-richtext-editor{width:100%}.andrew-johnson-resume-projects-richtext-editor .tiptap{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);min-height:60px;padding:var(--spacing-sm);border:2px dashed var(--color-border);border-radius:var(--border-radius-sm);background-color:transparent}.andrew-johnson-resume-projects-richtext-editor .tiptap:focus{outline:none;border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.02)}.andrew-johnson-resume-projects-tech-editable{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--border-radius-sm);background-color:rgba(var(--color-primary-rgb),.08);border:1px dashed var(--color-border)}.andrew-johnson-resume-projects-editable-tech{font-family:var(--font-primary);font-size:var(--text-xs);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-wide);padding:0!important;margin:0!important;border-bottom:none!important}.andrew-johnson-resume-projects-editable-tech:focus{border-bottom:none!important;background-color:transparent!important}.andrew-johnson-resume-projects-remove-tech-btn{width:16px;height:16px;border-radius:50%;background-color:transparent;border:none;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.andrew-johnson-resume-projects-remove-tech-btn:hover{background-color:rgba(239,68,68,.1);color:#ef4444}.andrew-johnson-resume-projects-add-tech-btn{width:24px;height:24px;border-radius:var(--border-radius-sm);background-color:rgba(var(--color-primary-rgb),.1);border:1px solid var(--color-primary);color:var(--color-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.andrew-johnson-resume-projects-add-tech-btn:hover{background-color:var(--color-primary);color:white}.andrew-johnson-resume-projects-card-image-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);background-color:rgba(var(--color-primary-rgb),.05);border:2px dashed var(--color-border);border-radius:var(--border-radius-normal);font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--text-3xl);color:var(--color-primary)}.andrew-johnson-resume-projects-card-image-placeholder-text{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.andrew-johnson-resume-projects-add-card{border:2px dashed var(--color-border);background-color:transparent;min-height:300px;display:flex;align-items:center;justify-content:center}.andrew-johnson-resume-projects-add-card:hover{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.02);transform:none;box-shadow:none}.andrew-johnson-resume-projects-add-btn{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);background-color:rgba(var(--color-primary-rgb),.1);border:1px solid var(--color-primary);border-radius:var(--border-radius-md);color:var(--color-primary);font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-base);cursor:pointer;transition:all .2s ease}.andrew-johnson-resume-projects-add-btn:hover{background-color:var(--color-primary);color:white}.andrew-johnson-resume-projects-card .ce-image-editor-wrapper{position:relative;width:100%}