/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */.andrew-johnson-resume-theme{--color-primary:#28e98c;--color-secondary:#3b82f6;--color-accent:#8b5cf6;--color-background:#000;--color-surface:#101010;--color-border:#303030;--color-text-primary:#fff;--color-text-secondary:#c2c2c2;--color-text-muted:#888;--color-selection-background:#28e98c;--color-selection-text:#000;--color-success:#28e98c;--color-warning:#f59e0b;--color-error:#ef4444;--color-info:#3b82f6;--color-primary-100:#d4fae9;--color-primary-300:#7af5be;--color-primary-500:#28e98c;--color-primary-700:#1db86e;--color-primary-900:#0d5a36;--color-secondary-100:#dbeafe;--color-secondary-300:#93c5fd;--color-secondary-500:#3b82f6;--color-secondary-700:#1d4ed8;--color-secondary-900:#1e3a8a;--color-accent-100:#ede9fe;--color-accent-300:#c4b5fd;--color-accent-500:#8b5cf6;--color-accent-700:#6d28d9;--color-accent-900:#4c1d95;--color-success-100:#d4fae9;--color-success-300:#7af5be;--color-success-500:#28e98c;--color-success-700:#1db86e;--color-success-900:#0d5a36;--color-warning-100:#fef3c7;--color-warning-300:#fcd34d;--color-warning-500:#f59e0b;--color-warning-700:#b45309;--color-warning-900:#78350f;--color-error-100:#fee2e2;--color-error-300:#fca5a5;--color-error-500:#ef4444;--color-error-700:#b91c1c;--color-error-900:#7f1d1d;--color-info-100:#dbeafe;--color-info-300:#93c5fd;--color-info-500:#3b82f6;--color-info-700:#1d4ed8;--color-info-900:#1e3a8a;--color-primary-rgb:40,233,140;--color-secondary-rgb:59,130,246;--color-accent-rgb:139,92,246;--color-background-rgb:0,0,0;--color-surface-rgb:16,16,16;--color-text-primary-rgb:255,255,255;--color-text-secondary-rgb:194,194,194;--color-text-muted-rgb:136,136,136;--color-border-rgb:48,48,48;--color-selection-background-rgb:40,233,140;--color-selection-text-rgb:0,0,0;--color-success-rgb:40,233,140;--color-warning-rgb:245,158,11;--color-error-rgb:239,68,68;--color-info-rgb:59,130,246;--font-primary:"Space Grotesk",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--font-weight-thin:100;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--letter-spacing-tighter:-.05em;--letter-spacing-tight:-.025em;--letter-spacing-normal:0em;--letter-spacing-wide:.025em;--letter-spacing-wider:.05em;--letter-spacing-widest:.1em;--line-height-none:1;--line-height-tight:1.25;--line-height-snug:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--line-height-loose:2;--global-letter-spacing:-.02em;--global-line-height:1.6;--text-shadow:0 2px 4px #0000004d;--text-stroke:1px solid currentColor;--text-gradient:linear-gradient(135deg,var(--color-primary),var(--color-accent));--text-shadow-none:none;--text-shadow-sm:0 1px 2px #0003;--text-shadow-lg:0 4px 8px #0000004d;--text-shadow-xl:0 8px 16px #0006;--text-shadow-2xl:0 16px 32px #00000080;--text-stroke-none:none;--text-stroke-sm:.5px solid currentColor;--text-stroke-lg:1.5px solid currentColor;--text-stroke-xl:2px solid currentColor;--text-stroke-2xl:3px solid currentColor;--text-gradient-primary:linear-gradient(135deg,var(--color-primary),var(--color-accent));--text-gradient-secondary:linear-gradient(135deg,var(--color-secondary),var(--color-primary));--text-gradient-accent:linear-gradient(135deg,var(--color-accent),var(--color-primary));--text-gradient-rainbow:linear-gradient(135deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080);--text-gradient-sunset:linear-gradient(135deg,#ff6b6b,#ffa726,#ffcc02);--text-gradient-ocean:linear-gradient(135deg,#667eea,#764ba2);--text-gradient-forest:linear-gradient(135deg,#134e5e,#71b280);--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-none:0;--spacing-2xl:3rem;--spacing-3xl:4rem;--spacing-4xl:5rem;--shadow:0 4px 6px -1px #0000004d;--shadow-sm:0 1px 2px 0 #0003;--shadow-md:0 4px 6px -1px #0000004d;--shadow-lg:0 10px 15px -3px #0006;--shadow-xl:0 20px 25px -5px #00000080;--shadow-2xl:0 25px 50px -12px #0009;--border-width:1px;--border-style:solid;--border-radius:12px;--border-width-thin:.5px;--border-width-normal:1px;--border-width-thick:2px;--border-width-extra-thick:3px;--border-radius-none:0;--border-radius-sm:4px;--border-radius-normal:8px;--border-radius-md:12px;--border-radius-lg:16px;--border-radius-xl:24px;--border-radius-full:9999px;--border-style-solid:solid;--border-style-dashed:dashed;--border-style-dotted:dotted;--border-style-double:double;--border-style-groove:groove;--border-style-ridge:ridge;--border-style-inset:inset;--border-style-outset:outset;--blur-backdrop:8px;--blur-filter:4px;--blur-backdrop-none:0px;--blur-backdrop-sm:4px;--blur-backdrop-md:8px;--blur-backdrop-lg:12px;--blur-backdrop-xl:16px;--blur-backdrop-2xl:24px;--blur-filter-none:0px;--blur-filter-sm:2px;--blur-filter-md:4px;--blur-filter-lg:8px;--blur-filter-xl:12px;--blur-filter-2xl:16px;--card-background:var(--color-surface);--card-border:rgba(var(--color-border-rgb),.3);--card-hover-border:rgba(var(--color-primary-rgb),.3);--button-primary-bg:var(--color-primary);--button-primary-text:var(--color-background);--button-secondary-bg:var(--color-surface);--button-secondary-text:var(--color-text-primary);--button-tertiary-bg:var(--color-border);--button-tertiary-text:var(--color-text-primary);--input-text:var(--color-text-secondary);--input-placeholder:var(--color-text-muted);--input-bg:var(--color-surface);--input-border:var(--color-border);--glow-primary:0 0 20px rgba(var(--color-primary-rgb),.3);--glow-secondary:0 0 20px rgba(var(--color-secondary-rgb),.3);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:var(--line-height-normal);scroll-behavior:smooth;max-width:100vw;min-height:100vh;position:relative;overflow-x:hidden}.andrew-johnson-resume-theme,.andrew-johnson-resume-theme body,.andrew-johnson-resume-theme html{background-color:var(--color-background);width:100%;margin:0;padding:0}body:has(.andrew-johnson-resume-theme),html:has(.andrew-johnson-resume-theme){background-color:var(--color-background)!important}.andrew-johnson-resume-theme *,.andrew-johnson-resume-theme :after,.andrew-johnson-resume-theme :before{box-sizing:border-box}.andrew-johnson-resume-theme ::selection{background:var(--color-selection-background);color:var(--color-selection-text)}.andrew-johnson-resume-theme{font-size:var(--text-base);letter-spacing:var(--global-letter-spacing);line-height:var(--global-line-height);font-weight:var(--font-weight-normal);font-family:var(--font-primary)}.andrew-johnson-resume-theme .text-sm,.andrew-johnson-resume-theme small{font-size:var(--text-sm)}.andrew-johnson-resume-theme .ProseMirror ol,.andrew-johnson-resume-theme .ProseMirror ul{margin:var(--spacing-md)0;padding-left:var(--spacing-2xl);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.andrew-johnson-resume-theme .ProseMirror ul{list-style-type:none;position:relative}.andrew-johnson-resume-theme .ProseMirror ul li{padding-left:var(--spacing-lg);margin-bottom:var(--spacing-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);position:relative}.andrew-johnson-resume-theme .ProseMirror ul li:before{content:"";left:0;top:calc(var(--line-height-relaxed)*.5em - 3px);background:var(--color-primary);border-radius:50%;width:6px;height:6px;position:absolute}.andrew-johnson-resume-theme .ProseMirror ol{counter-reset:list-counter;list-style-type:decimal;list-style-position:outside}.andrew-johnson-resume-theme .ProseMirror ol li{margin-bottom:var(--spacing-sm);padding-left:var(--spacing-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);position:relative}.andrew-johnson-resume-theme .ProseMirror ol li::marker{color:var(--color-primary);font-weight:var(--font-weight-semibold);font-size:1em}.andrew-johnson-resume-theme .ProseMirror ol ol,.andrew-johnson-resume-theme .ProseMirror ol ul,.andrew-johnson-resume-theme .ProseMirror ul ol,.andrew-johnson-resume-theme .ProseMirror ul ul{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs);padding-left:var(--spacing-xl)}.andrew-johnson-resume-theme .ProseMirror ul ul li:before{background:var(--color-secondary);width:4px;height:4px}.andrew-johnson-resume-theme .ProseMirror ul ul ul li:before{background:var(--color-accent);width:3px;height:3px}.andrew-johnson-resume-theme .ProseMirror li{margin-bottom:var(--spacing-sm);line-height:var(--line-height-relaxed)}.andrew-johnson-resume-theme .ProseMirror li:last-child{margin-bottom:0}.andrew-johnson-resume-theme .ProseMirror li>p{margin-top:0;margin-bottom:var(--spacing-xs)}.andrew-johnson-resume-theme .ProseMirror li>p:last-child{margin-bottom:0}.andrew-johnson-resume-theme .ProseMirror ol+p,.andrew-johnson-resume-theme .ProseMirror p+ol,.andrew-johnson-resume-theme .ProseMirror p+ul,.andrew-johnson-resume-theme .ProseMirror ul+p{margin-top:var(--spacing-md)}.andrew-johnson-resume-theme .ProseMirror h1,.andrew-johnson-resume-theme .ProseMirror h2,.andrew-johnson-resume-theme .ProseMirror h3,.andrew-johnson-resume-theme .ProseMirror h4,.andrew-johnson-resume-theme .ProseMirror h5,.andrew-johnson-resume-theme .ProseMirror h6{color:var(--color-text-primary);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-top:var(--spacing-xl);margin-bottom:var(--spacing-md);letter-spacing:var(--letter-spacing-tight);font-family:var(--font-primary)}.andrew-johnson-resume-theme .ProseMirror h1:first-child,.andrew-johnson-resume-theme .ProseMirror h2:first-child,.andrew-johnson-resume-theme .ProseMirror h3:first-child,.andrew-johnson-resume-theme .ProseMirror h4:first-child,.andrew-johnson-resume-theme .ProseMirror h5:first-child,.andrew-johnson-resume-theme .ProseMirror h6:first-child{margin-top:0}.andrew-johnson-resume-theme .ProseMirror h1{font-size:var(--text-4xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-lg);line-height:var(--line-height-tight)}.andrew-johnson-resume-theme .ProseMirror h2{font-size:var(--text-3xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-md);line-height:var(--line-height-tight)}.andrew-johnson-resume-theme .ProseMirror h3{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-md);line-height:var(--line-height-normal);color:var(--color-primary)}.andrew-johnson-resume-theme .ProseMirror h4{font-size:var(--text-xl)}.andrew-johnson-resume-theme .ProseMirror h4,.andrew-johnson-resume-theme .ProseMirror h5{font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm);line-height:var(--line-height-normal)}.andrew-johnson-resume-theme .ProseMirror h5{font-size:var(--text-lg)}.andrew-johnson-resume-theme .ProseMirror h6{font-size:var(--text-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.05em;line-height:var(--line-height-normal);color:var(--color-accent)}.andrew-johnson-resume-theme .ProseMirror p+h1,.andrew-johnson-resume-theme .ProseMirror p+h2,.andrew-johnson-resume-theme .ProseMirror p+h3,.andrew-johnson-resume-theme .ProseMirror p+h4,.andrew-johnson-resume-theme .ProseMirror p+h5,.andrew-johnson-resume-theme .ProseMirror p+h6{margin-top:var(--spacing-xl)}.andrew-johnson-resume-theme .ProseMirror h1+ol,.andrew-johnson-resume-theme .ProseMirror h1+p,.andrew-johnson-resume-theme .ProseMirror h1+ul,.andrew-johnson-resume-theme .ProseMirror h2+ol,.andrew-johnson-resume-theme .ProseMirror h2+p,.andrew-johnson-resume-theme .ProseMirror h2+ul,.andrew-johnson-resume-theme .ProseMirror h3+ol,.andrew-johnson-resume-theme .ProseMirror h3+p,.andrew-johnson-resume-theme .ProseMirror h3+ul,.andrew-johnson-resume-theme .ProseMirror h4+p,.andrew-johnson-resume-theme .ProseMirror h5+p,.andrew-johnson-resume-theme .ProseMirror h6+p{margin-top:var(--spacing-md)}.editable-field-focus{transition:all .3s;position:relative;box-shadow:0 0 0 1px rgba(var(--color-primary-rgb),.25),inset 0 0 0 1px rgba(var(--color-primary-rgb),.1)!important;border-radius:var(--border-radius-sm)!important;outline:none!important}.editable-field-focus:focus{box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.4),0 0 8px rgba(var(--color-primary-rgb),.2),0 0 16px rgba(var(--color-primary-rgb),.1),inset 0 0 0 1px rgba(var(--color-primary-rgb),.15)!important;outline:none!important}.andrew-johnson-resume-theme ::-webkit-scrollbar{width:8px}.andrew-johnson-resume-theme ::-webkit-scrollbar-track{background:var(--color-surface)}.andrew-johnson-resume-theme ::-webkit-scrollbar-thumb{background:var(--color-primary);border-radius:var(--border-radius-full)}.andrew-johnson-resume-theme ::-webkit-scrollbar-thumb:hover{background:var(--color-secondary)}.andrew-johnson-resume-section-title{font-size:var(--text-4xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);position:relative}@media (min-width:768px){.andrew-johnson-resume-section-title{font-size:var(--text-5xl)}}@media (max-width:640px){.andrew-johnson-resume-section-title{font-size:var(--text-3xl)}}.andrew-johnson-resume-section-title-editable{font-size:var(--text-4xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);text-align:center;resize:none;background:0 0;border:none;outline:none;width:100%;font-family:inherit;transition:all .3s;position:relative}@media (min-width:768px){.andrew-johnson-resume-section-title-editable{font-size:var(--text-5xl)}}@media (max-width:640px){.andrew-johnson-resume-section-title-editable{font-size:var(--text-3xl)}}.andrew-johnson-resume-section-title-editable:focus{outline:2px solid var(--color-primary-500);outline-offset:4px;border-radius:var(--border-radius-sm)}.andrew-johnson-resume-section-title-editable::placeholder{color:var(--color-text-secondary);opacity:.7}.focus-ring{outline-offset:2px;outline:2px solid #0000}.focus-ring:focus{outline:2px solid var(--color-primary);outline-offset:2px}.focus-ring:focus,.focus-visible:focus{box-shadow:0 0 0 4px rgba(var(--color-primary-rgb),.1)}.focus-visible:focus{outline:2px solid var(--color-primary-500);outline-offset:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 0 0 rgba(var(--color-primary-rgb),.4)}50%{opacity:.8;box-shadow:0 0 0 8px rgba(var(--color-primary-rgb),0)}}.andrew-johnson-resume-fade-in{animation:fadeIn .5s ease-out}.andrew-johnson-resume-pulse{animation:pulse 2s ease-in-out infinite}@media (prefers-color-scheme:dark){.dark-mode{background:var(--color-background);color:var(--color-text-primary)}}@media print{.no-print{display:none!important}.print-break{page-break-before:always}.andrew-johnson-resume-theme{color:#000!important;background-color:#fff!important}.andrew-johnson-resume-theme *{color:#000!important;background-color:#0000!important}}.andrew-johnson-resume-container{background-color:var(--color-background);flex-direction:column;width:100%;min-height:100vh;margin:0;display:flex;position:relative}.andrew-johnson-resume-container:before{content:"";background-color:var(--color-background);z-index:-1;position:fixed;inset:0}.andrew-johnson-resume-main{background-color:var(--color-background);flex:1;width:100%}.andrew-johnson-resume-nav{z-index:1000;background-color:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);position:fixed;top:0;left:0;right:0}.andrew-johnson-resume-nav-container{max-width:1200px;padding:0 var(--spacing-lg);margin:0 auto}.andrew-johnson-resume-nav-content{justify-content:space-between;align-items:center;height:70px;display:flex}.andrew-johnson-resume-nav-logo{font-family:var(--font-primary);font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:var(--color-primary)}.andrew-johnson-resume-nav-links{gap:var(--spacing-lg);display:none}@media (min-width:768px){.andrew-johnson-resume-nav-links{display:flex}}.andrew-johnson-resume-nav-link{font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-decoration:none;transition:color .2s}.andrew-johnson-resume-nav-link:hover{color:var(--color-primary)}.andrew-johnson-resume-mobile-menu-btn{padding:var(--spacing-sm);color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;display:flex}@media (min-width:768px){.andrew-johnson-resume-mobile-menu-btn{display:none}}.andrew-johnson-resume-mobile-menu{gap:var(--spacing-sm);padding:var(--spacing-lg);background-color:var(--color-surface);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.andrew-johnson-resume-mobile-menu-link{padding:var(--spacing-md);font-family:var(--font-primary);font-size:var(--text-base);color:var(--color-text-primary);border-radius:var(--border-radius-normal);text-decoration:none;transition:background-color .2s}.andrew-johnson-resume-mobile-menu-link:hover{background-color:rgba(var(--color-primary-rgb),.1);color:var(--color-primary)}.andrew-johnson-resume-footer{background-color:var(--color-surface);border-top:var(--border-width)var(--border-style)var(--color-border);width:100%;margin-top:var(--spacing-3xl);position:relative}.andrew-johnson-resume-footer-container{max-width:1440px;padding:var(--spacing-lg)var(--spacing-2xl);margin:0 auto}.andrew-johnson-resume-footer-content{justify-content:center;align-items:center;gap:var(--spacing-md);text-align:center;flex-direction:column;display:flex}.andrew-johnson-resume-footer-social{gap:var(--spacing-lg);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.andrew-johnson-resume-footer-social-link{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);text-decoration:none;transition:color .3s}.andrew-johnson-resume-footer-social-link:hover{color:var(--color-primary)}.andrew-johnson-resume-footer-copyright{font-family:var(--font-primary);font-weight:var(--font-weight-normal);font-size:var(--text-sm);line-height:var(--line-height-normal);color:var(--color-text-muted);letter-spacing:var(--letter-spacing-tight)}.andrew-johnson-resume-footer-social-wrapper{justify-content:center;align-items:center;display:flex;position:relative}.andrew-johnson-resume-footer-social-wrapper-editing{padding:var(--spacing-md)var(--spacing-xl);border:2px dashed var(--color-border);border-radius:var(--border-radius-md);background-color:rgba(var(--color-primary-rgb),.02)}.andrew-johnson-resume-footer-social-edit-btn{border-radius:var(--border-radius-sm);background-color:var(--color-primary);border:2px solid var(--color-surface);color:#fff;cursor:pointer;z-index:10;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex;position:absolute;top:-10px;right:-10px;box-shadow:0 2px 8px #00000026}.andrew-johnson-resume-footer-social-edit-btn:hover{background-color:var(--color-primary-700,var(--color-primary));transform:scale(1.1)}.andrew-johnson-resume-footer-social-empty{font-family:var(--font-primary);font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic}.andrew-johnson-resume-footer-editable-copyright{border:none;border-bottom:2px dashed var(--color-border);color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;text-align:center;background:0 0;outline:none;min-width:200px;margin:-2px -4px;padding:2px 4px;transition:all .2s}.andrew-johnson-resume-footer-editable-copyright:hover{border-bottom-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05)}.andrew-johnson-resume-footer-editable-copyright:focus{border-bottom-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.1);outline:none}.andrew-johnson-resume-footer-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;padding:var(--spacing-lg);background-color:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.andrew-johnson-resume-footer-modal{background-color:var(--color-surface);border:var(--border-width)var(--border-style)var(--color-border);border-radius:var(--border-radius-lg);flex-direction:column;width:100%;max-width:500px;max-height:80vh;display:flex;overflow:hidden;box-shadow:0 20px 40px #0000004d}.andrew-johnson-resume-footer-modal-header{padding:var(--spacing-lg);border-bottom:var(--border-width)var(--border-style)var(--color-border);justify-content:space-between;align-items:center;display:flex}.andrew-johnson-resume-footer-modal-title{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-xl);color:var(--color-text-primary);margin:0}.andrew-johnson-resume-footer-modal-close{border-radius:var(--border-radius-sm);border:var(--border-width)var(--border-style)var(--color-border);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;transition:all .2s;display:flex}.andrew-johnson-resume-footer-modal-close:hover{color:#ef4444;background-color:#ef44441a;border-color:#ef4444}.andrew-johnson-resume-footer-modal-content{padding:var(--spacing-lg);flex:1;overflow-y:auto}.andrew-johnson-resume-footer-modal-empty{font-family:var(--font-primary);font-size:var(--text-base);color:var(--color-text-secondary);text-align:center;padding:var(--spacing-lg)}.andrew-johnson-resume-footer-modal-list{gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.andrew-johnson-resume-footer-modal-item{gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--color-background);border:var(--border-width)var(--border-style)var(--color-border);border-radius:var(--border-radius-md);flex-direction:column;display:flex}.andrew-johnson-resume-footer-modal-item-header{justify-content:space-between;align-items:center;display:flex}.andrew-johnson-resume-footer-modal-icon-preview{color:var(--color-primary);flex-shrink:0}.andrew-johnson-resume-footer-modal-item-fields{gap:var(--spacing-sm);flex-direction:column;display:flex}.andrew-johnson-resume-footer-modal-select{padding:var(--spacing-sm)var(--spacing-md);background-color:var(--color-surface);border:var(--border-width)var(--border-style)var(--color-border);border-radius:var(--border-radius-sm);font-family:var(--font-primary);font-size:var(--text-base);color:var(--color-text-primary);cursor:pointer;transition:all .2s}.andrew-johnson-resume-footer-modal-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1);outline:none}.andrew-johnson-resume-footer-modal-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.andrew-johnson-resume-footer-modal-label{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.andrew-johnson-resume-footer-modal-input{padding:var(--spacing-sm)var(--spacing-md);background-color:var(--color-surface);border:var(--border-width)var(--border-style)var(--color-border);border-radius:var(--border-radius-sm);font-family:var(--font-primary);font-size:var(--text-base);color:var(--color-text-primary);transition:all .2s}.andrew-johnson-resume-footer-modal-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1);outline:none}.andrew-johnson-resume-footer-modal-input::placeholder{color:var(--color-text-muted)}.andrew-johnson-resume-footer-modal-delete{border-radius:var(--border-radius-sm);border:var(--border-width)var(--border-style)var(--color-border);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;background-color:#0000;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.andrew-johnson-resume-footer-modal-delete:hover{color:#ef4444;background-color:#ef44441a;border-color:#ef4444}.andrew-johnson-resume-footer-modal-add{justify-content:center;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm)var(--spacing-md);background-color:rgba(var(--color-primary-rgb),.05);border:2px dashed var(--color-border);border-radius:var(--border-radius-sm);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;display:flex}.andrew-johnson-resume-footer-modal-add:hover{background-color:rgba(var(--color-primary-rgb),.1);border-color:var(--color-primary)}.andrew-johnson-resume-footer-modal-footer{justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:var(--border-width)var(--border-style)var(--color-border);background-color:var(--color-background);display:flex}.andrew-johnson-resume-footer-modal-btn{padding:var(--spacing-sm)var(--spacing-lg);border-radius:var(--border-radius-sm);font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-base);cursor:pointer;transition:all .2s}.andrew-johnson-resume-footer-modal-btn-cancel{border:var(--border-width)var(--border-style)var(--color-border);color:var(--color-text-secondary);background-color:#0000}.andrew-johnson-resume-footer-modal-btn-cancel:hover{background-color:var(--color-surface);color:var(--color-text-primary)}.andrew-johnson-resume-footer-modal-btn-save{background-color:var(--color-primary);border:var(--border-width)var(--border-style)var(--color-primary);color:#fff}.andrew-johnson-resume-footer-modal-btn-save:hover{opacity:.9;box-shadow:0 4px 12px rgba(var(--color-primary-rgb),.3)}@media (max-width:768px){.andrew-johnson-resume-footer-container{padding:var(--spacing-lg)}.andrew-johnson-resume-footer-social{gap:var(--spacing-md)}}@media (max-width:480px){.andrew-johnson-resume-footer-container{padding:var(--spacing-md)}.andrew-johnson-resume-footer-social{gap:var(--spacing-sm)}.andrew-johnson-resume-footer-copyright,.andrew-johnson-resume-footer-social-link{font-size:var(--text-xs)}}.andrew-johnson-resume-modal-overlay{z-index:1000;padding:var(--spacing-lg);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.andrew-johnson-resume-modal{background:var(--color-surface);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-2xl);border:1px solid var(--color-border);flex-direction:column;width:100%;max-width:500px;max-height:80vh;display:flex;overflow:hidden}.andrew-johnson-resume-modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.andrew-johnson-resume-modal-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.andrew-johnson-resume-modal-close{border-radius:var(--border-radius-sm);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.andrew-johnson-resume-modal-close:hover{background:rgba(var(--color-text-secondary-rgb),.1);color:var(--color-text-primary)}.andrew-johnson-resume-modal-content{padding:var(--spacing-lg);flex:1;overflow-y:auto}.andrew-johnson-resume-modal-footer{justify-content:flex-end;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--color-border);display:flex}.andrew-johnson-resume-modal-btn{padding:var(--spacing-sm)var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--border-radius-normal);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s}.andrew-johnson-resume-modal-btn-cancel{color:var(--color-text-secondary);background:0 0}.andrew-johnson-resume-modal-btn-cancel:hover{background:rgba(var(--color-text-secondary-rgb),.1);color:var(--color-text-primary)}.andrew-johnson-resume-modal-btn-save{background:var(--color-primary);color:var(--button-primary-text);border-color:var(--color-primary)}.andrew-johnson-resume-modal-btn-save:hover{background:var(--color-primary-700);border-color:var(--color-primary-700)}@media (max-width:640px){.andrew-johnson-resume-nav-content{height:60px}.andrew-johnson-resume-footer-container{padding:var(--spacing-md)}.andrew-johnson-resume-modal{margin:var(--spacing-sm);max-height:90vh}.andrew-johnson-resume-modal-overlay{padding:var(--spacing-sm)}}.andrew-johnson-resume-hero{flex-shrink:0;width:360px}.andrew-johnson-resume-hero-portrait{background-color:var(--color-surface);border-radius:var(--border-radius-xl);padding:var(--spacing-lg);gap:var(--spacing-xl);border:var(--border-width)var(--border-style)var(--card-border);width:100%;box-shadow:var(--shadow);flex-direction:column;align-items:center;display:flex;position:sticky;top:60px}.andrew-johnson-resume-hero-portrait-image{aspect-ratio:320/320;border-radius:var(--border-radius-xl);width:100%;position:relative}.andrew-johnson-resume-hero-portrait-image-inner{object-fit:cover;border-radius:var(--border-radius-xl);width:100%;height:100%;position:absolute;inset:0}.andrew-johnson-resume-hero-portrait-image-border{border:var(--border-width)var(--border-style)var(--card-border);border-radius:var(--border-radius-xl);pointer-events:none;position:absolute;inset:0}.andrew-johnson-resume-hero-portrait-content{gap:var(--spacing-lg)}.andrew-johnson-resume-hero-portrait-content,.andrew-johnson-resume-hero-portrait-info{flex-direction:column;justify-content:center;align-items:center;width:100%;display:flex}.andrew-johnson-resume-hero-portrait-info{gap:var(--spacing-md)}.andrew-johnson-resume-hero-portrait-badge{gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--border-radius-normal);border:var(--border-width)var(--border-style)rgba(var(--color-text-primary-rgb),.12);justify-content:center;align-items:center;transition:all .3s;display:flex;position:relative}.andrew-johnson-resume-hero-portrait-badge:hover{border-color:var(--color-primary);box-shadow:0 0 15px rgba(var(--color-primary-rgb),.2)}.andrew-johnson-resume-hero-portrait-badge-icon{flex-shrink:0;width:24px;height:24px;position:relative}.andrew-johnson-resume-hero-portrait-badge-icon-inner{background:var(--color-primary);border-radius:var(--border-radius-full);width:100%;height:100%;animation:pulse 2s ease-in-out infinite}.andrew-johnson-resume-hero-portrait-badge-text{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-primary);letter-spacing:var(--letter-spacing-tight);white-space:nowrap}.andrew-johnson-resume-hero-portrait-badge-border{border:var(--border-width)var(--border-style)rgba(var(--color-text-primary-rgb),.12);border-radius:var(--border-radius-normal);pointer-events:none;position:absolute;inset:0}.andrew-johnson-resume-hero-portrait-name{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--text-3xl);line-height:var(--line-height-tight);color:var(--color-text-primary);text-align:center;letter-spacing:var(--letter-spacing-tight);width:100%}.andrew-johnson-resume-hero-portrait-title{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-lg);line-height:var(--line-height-normal);color:var(--color-text-secondary);text-align:center;letter-spacing:var(--letter-spacing-normal)}.andrew-johnson-resume-hero-portrait-description{font-family:var(--font-primary);font-weight:var(--font-weight-normal);font-size:var(--text-base);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);text-align:center}.andrew-johnson-resume-hero-portrait-description p{margin:0}.andrew-johnson-resume-hero-portrait-stats{gap:var(--spacing-sm);flex-wrap:wrap;justify-content:center;align-items:center;width:100%;display:flex}.andrew-johnson-resume-hero-portrait-stat{min-width:90px;padding:var(--spacing-sm);border-radius:var(--border-radius-normal);border:var(--border-width)var(--border-style)rgba(var(--color-text-primary-rgb),.12);text-align:center}.andrew-johnson-resume-hero-portrait-stat-value{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-lg);line-height:var(--line-height-tight);color:var(--color-text-primary)}.andrew-johnson-resume-hero-portrait-stat-label{font-family:var(--font-primary);font-weight:var(--font-weight-normal);font-size:var(--text-xs);line-height:var(--line-height-normal);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.andrew-johnson-resume-hero-portrait-social-wrapper{justify-content:center;align-items:center;width:100%;display:flex;position:relative}.andrew-johnson-resume-hero-portrait-social-wrapper-editing{padding:var(--spacing-sm)var(--spacing-md);border:2px dashed var(--color-border);border-radius:var(--border-radius-md);background-color:rgba(var(--color-primary-rgb),.02)}.andrew-johnson-resume-hero-portrait-social-edit-btn{border-radius:var(--border-radius-sm);background-color:var(--color-primary);border:2px solid var(--color-surface);color:#fff;cursor:pointer;z-index:10;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex;position:absolute;top:-10px;right:-10px;box-shadow:0 2px 8px #00000026}.andrew-johnson-resume-hero-portrait-social-edit-btn:hover{background-color:var(--color-primary-700,var(--color-primary));transform:scale(1.1)}.andrew-johnson-resume-hero-portrait-social{gap:var(--spacing-sm);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.andrew-johnson-resume-hero-portrait-social-link{width:40px;height:40px;padding:var(--spacing-sm);border-radius:var(--border-radius-normal);justify-content:center;align-items:center;transition:all .3s;display:flex;position:relative}.andrew-johnson-resume-hero-portrait-social-link:hover{background-color:rgba(var(--color-primary-rgb),.1);transform:translateY(-2px)}.andrew-johnson-resume-hero-portrait-social-link-icon{background:rgba(var(--color-text-primary-rgb),.3);border-radius:var(--border-radius-sm);width:20px;height:20px;transition:all .3s}.andrew-johnson-resume-hero-portrait-social-link:hover .andrew-johnson-resume-hero-portrait-social-link-icon{background:var(--color-primary)}.andrew-johnson-resume-hero-portrait-social-link-react-icon{color:var(--color-text-secondary);transition:all .3s}.andrew-johnson-resume-hero-portrait-social-link:hover .andrew-johnson-resume-hero-portrait-social-link-react-icon{color:var(--color-primary);transform:scale(1.15)}.andrew-johnson-resume-hero-portrait-social-link-border{border:var(--border-width)var(--border-style)rgba(var(--color-text-primary-rgb),.12);border-radius:var(--border-radius-normal);pointer-events:none;transition:all .3s;position:absolute;inset:0}.andrew-johnson-resume-hero-portrait-social-link:hover .andrew-johnson-resume-hero-portrait-social-link-border{border-color:var(--color-primary)}.andrew-johnson-resume-hero-portrait-social-empty{font-family:var(--font-primary);font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic}.andrew-johnson-resume-hero-portrait-buttons{gap:var(--spacing-sm);justify-content:center;align-items:center;width:100%;height:42px;display:flex}.andrew-johnson-resume-hero-portrait-button-download{background-color:var(--color-surface);gap:var(--spacing-xs);padding:var(--spacing-sm)0;border-radius:var(--border-radius-normal);border:var(--border-width)var(--border-style)var(--color-border);justify-content:center;align-items:center;width:100%;height:100%;text-decoration:none;transition:all .3s;display:flex}.andrew-johnson-resume-hero-portrait-button-download:hover{background-color:var(--color-border);border-color:var(--color-primary);box-shadow:0 0 15px rgba(var(--color-primary-rgb),.2)}.andrew-johnson-resume-hero-portrait-button-download-icon{background:url(http://localhost:3845/assets/49497b561bfd8d9118a284a2c71e8bc642d01c08.png) 50%/contain no-repeat;flex-shrink:0;width:18px;height:18px}.andrew-johnson-resume-hero-portrait-button-download span{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);white-space:nowrap;letter-spacing:var(--letter-spacing-tight)}.andrew-johnson-resume-hero-portrait-button-contact{background-color:var(--color-primary);gap:var(--spacing-xs);padding:var(--spacing-sm)0;border-radius:var(--border-radius-normal);border:var(--border-width)var(--border-style)var(--color-primary);cursor:pointer;height:100%;font-family:var(--font-primary);flex:1;justify-content:center;align-items:center;transition:all .3s;display:flex}.andrew-johnson-resume-hero-portrait-button-contact:hover{color:var(--color-primary);box-shadow:0 0 20px rgba(var(--color-primary-rgb),.4);background-color:#0000;transform:translateY(-2px)}.andrew-johnson-resume-hero-portrait-button-contact-icon{background:url(http://localhost:3845/assets/49497b561bfd8d9118a284a2c71e8bc642d01c08.png) 50%/contain no-repeat;flex-shrink:0;width:20px;height:20px}.andrew-johnson-resume-hero-portrait-button-contact span{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-background);white-space:nowrap;letter-spacing:var(--letter-spacing-tight);transition:color .3s}.andrew-johnson-resume-hero-portrait-button-contact:hover span{color:var(--color-primary)}.andrew-johnson-resume-hero-portrait-border{border:var(--border-width)var(--border-style)var(--card-border);border-radius:var(--border-radius-xl);pointer-events:none;position:absolute;inset:0}@media (max-width:1024px){.andrew-johnson-resume-hero{width:100%;max-width:360px;margin:0 auto}.andrew-johnson-resume-hero-portrait{position:relative;top:auto}}@media (max-width:768px){.andrew-johnson-resume-hero-portrait{padding:var(--spacing-md);gap:var(--spacing-lg)}.andrew-johnson-resume-hero-portrait-name{font-size:var(--text-2xl)}.andrew-johnson-resume-hero-portrait-buttons{gap:var(--spacing-sm);flex-direction:column;height:auto}.andrew-johnson-resume-hero-portrait-button-contact,.andrew-johnson-resume-hero-portrait-button-download{flex:none;width:100%;height:42px}}.andrew-johnson-resume-hero-editable-cta,.andrew-johnson-resume-hero-editable-input,.andrew-johnson-resume-hero-editable-name,.andrew-johnson-resume-hero-editable-stat-label,.andrew-johnson-resume-hero-editable-stat-value,.andrew-johnson-resume-hero-editable-title{font-family:inherit;font-weight:inherit;font-size:inherit;line-height:inherit;color:inherit;text-align:inherit;letter-spacing:inherit;background:0 0;border:none;outline:none;width:auto;min-width:50px;margin:0;padding:0}.andrew-johnson-resume-hero-editable-name,.andrew-johnson-resume-hero-editable-title{text-align:center;width:100%}.andrew-johnson-resume-hero-editable-stat-value,.andrew-johnson-resume-hero-portrait-badge-text .andrew-johnson-resume-hero-editable-input{text-align:center}.andrew-johnson-resume-hero-editable-stat-label{text-align:center;text-transform:uppercase}.andrew-johnson-resume-hero-editable-cta{text-align:center;background:0 0}.andrew-johnson-resume-hero-rich-text-editor{text-align:center;width:100%;min-height:60px}.andrew-johnson-resume-hero-rich-text-editor .ProseMirror{text-align:center;padding:var(--spacing-sm);border:1px dashed rgba(var(--color-primary-rgb),.3);border-radius:var(--border-radius-sm);background:rgba(var(--color-primary-rgb),.02);transition:all .2s}.andrew-johnson-resume-hero-rich-text-editor .ProseMirror:focus{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.1)}.andrew-johnson-resume-hero-rich-text-editor .ProseMirror p{margin:0}.andrew-johnson-resume-hero-portrait-stat{position:relative}.andrew-johnson-resume-hero-stat-remove-btn{color:#fff;border-radius:var(--border-radius-full);cursor:pointer;z-index:10;opacity:.9;background:#ef4444;border:none;justify-content:center;align-items:center;width:18px;height:18px;padding:0;transition:all .2s;display:flex;position:absolute;top:-6px;right:-6px}.andrew-johnson-resume-hero-stat-remove-btn:hover{opacity:1;background:#dc2626;transform:scale(1.1)}.andrew-johnson-resume-hero-add-stat{border-style:dashed;border-color:rgba(var(--color-primary-rgb),.3);background:rgba(var(--color-primary-rgb),.02);cursor:pointer;min-width:100px;transition:all .2s}.andrew-johnson-resume-hero-add-stat:hover{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05)}.andrew-johnson-resume-hero-add-stat-btn{justify-content:center;align-items:center;gap:var(--spacing-xs);width:100%;height:100%;padding:var(--spacing-sm);color:var(--color-primary);cursor:pointer;font-family:var(--font-primary);font-size:var(--text-xs);font-weight:var(--font-weight-medium);background:0 0;border:none;flex-direction:column;transition:all .2s;display:flex}.andrew-johnson-resume-hero-add-stat-btn:hover{color:var(--color-primary)}.andrew-johnson-resume-hero-add-stat-btn span{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.editable-field-focus:focus{background:rgba(var(--color-primary-rgb),.05);border-radius:var(--border-radius-sm);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.2);outline:none}.ce-image-editor-wrapper{width:100%;position:relative}.andrew-johnson-resume-cv-editor{width:100%;margin-bottom:var(--spacing-sm)}.andrew-johnson-resume-cv-upload-btn{align-items:center;gap:var(--spacing-xs);width:100%;padding:var(--spacing-md);background-color:rgba(var(--color-primary-rgb),.05);border:2px dashed var(--color-border);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-sm);cursor:pointer;flex-direction:column;transition:all .2s;display:flex}.andrew-johnson-resume-cv-upload-btn:hover{background-color:rgba(var(--color-primary-rgb),.1);border-color:var(--color-primary)}.andrew-johnson-resume-cv-hint{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--font-weight-normal)}.andrew-johnson-resume-cv-status{gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--border-radius-md);background-color:#22c55e0d;border:1px solid #22c55e4d;flex-direction:column;display:flex}.andrew-johnson-resume-cv-info{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.andrew-johnson-resume-cv-icon-success{color:#22c55e;flex-shrink:0}.andrew-johnson-resume-cv-filename{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);color:var(--color-text-primary);word-break:break-all}.andrew-johnson-resume-cv-pending{font-family:var(--font-primary);font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.andrew-johnson-resume-cv-actions{gap:var(--spacing-sm);align-items:center;display:flex}.andrew-johnson-resume-cv-replace-btn{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs)var(--spacing-sm);background-color:rgba(var(--color-primary-rgb),.1);border:1px solid var(--color-primary);border-radius:var(--border-radius-sm);color:var(--color-primary);font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-xs);cursor:pointer;transition:all .2s;display:flex}.andrew-johnson-resume-cv-replace-btn:hover{background-color:var(--color-primary);color:#fff}.andrew-johnson-resume-cv-remove-btn{border-radius:var(--border-radius-sm);color:#ef4444;cursor:pointer;background-color:#ef44441a;border:1px solid #ef44444d;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:all .2s;display:flex}.andrew-johnson-resume-cv-remove-btn:hover{color:#fff;background-color:#ef4444;border-color:#ef4444}.andrew-johnson-resume-cv-download-btn{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm)var(--spacing-md);background-color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--border-radius-sm);color:#fff;font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);cursor:pointer;text-decoration:none;transition:all .2s;display:inline-flex}.andrew-johnson-resume-cv-download-btn:hover{color:var(--color-primary);background-color:#0000}.andrew-johnson-resume-hero-cv-wrapper{flex:1;display:flex;position:relative;overflow:visible}.andrew-johnson-resume-hero-cv-wrapper-editing{padding:var(--spacing-sm);border:1px dashed var(--color-border);border-radius:var(--border-radius-md);flex:1}.andrew-johnson-resume-hero-cv-edit-btn{border-radius:var(--border-radius-sm);background-color:var(--color-surface);border:var(--border-width)var(--border-style)var(--color-border);width:28px;height:28px;color:var(--color-primary);cursor:pointer;z-index:10;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:-8px;right:-8px}.andrew-johnson-resume-hero-cv-edit-btn:hover{background-color:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary)}.andrew-johnson-resume-hero-cta-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;padding:var(--spacing-lg);background-color:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.andrew-johnson-resume-hero-cta-modal{background-color:var(--color-surface);border:var(--border-width)var(--border-style)var(--color-border);border-radius:var(--border-radius-lg);flex-direction:column;width:100%;max-width:600px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 20px 40px #0000004d}.andrew-johnson-resume-hero-cta-modal-header{padding:var(--spacing-lg);border-bottom:var(--border-width)var(--border-style)var(--color-border);justify-content:space-between;align-items:center;display:flex}.andrew-johnson-resume-hero-cta-modal-title{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-xl);color:var(--color-text-primary);margin:0}.andrew-johnson-resume-hero-cta-modal-close{border-radius:var(--border-radius-sm);border:var(--border-width)var(--border-style)var(--color-border);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;transition:all .2s;display:flex}.andrew-johnson-resume-hero-cta-modal-close:hover{color:#ef4444;background-color:#ef44441a;border-color:#ef4444}.andrew-johnson-resume-hero-cta-modal-content{padding:var(--spacing-lg);flex:1;overflow-y:auto}.andrew-johnson-resume-hero-cta-modal-section{margin-bottom:var(--spacing-xl)}.andrew-johnson-resume-hero-cta-modal-section:last-child{margin-bottom:0}.andrew-johnson-resume-hero-cta-modal-fields{gap:var(--spacing-md);flex-direction:column;display:flex}.andrew-johnson-resume-hero-cta-modal-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.andrew-johnson-resume-hero-cta-modal-label{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);color:var(--color-text-secondary)}.andrew-johnson-resume-hero-cta-modal-footer{justify-content:flex-end;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:var(--border-width)var(--border-style)var(--color-border);display:flex}.andrew-johnson-resume-hero-cta-modal-btn{padding:8px var(--spacing-md);border-radius:var(--border-radius-md);font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);cursor:pointer;border:var(--border-width)var(--border-style)var(--color-border);transition:all .2s}.andrew-johnson-resume-hero-cta-modal-btn-cancel{color:var(--color-text-secondary);background-color:#0000}.andrew-johnson-resume-hero-cta-modal-btn-cancel:hover{background-color:var(--color-background);border-color:var(--color-text-secondary)}.andrew-johnson-resume-hero-cta-modal-btn-save{background-color:var(--color-primary);color:var(--color-selection-text);border-color:var(--color-primary)}.andrew-johnson-resume-hero-cta-modal-btn-save:hover{background-color:var(--color-primary-700);border-color:var(--color-primary-700)}@media (max-width:640px){.andrew-johnson-resume-hero-cta-modal{max-width:100%;margin:var(--spacing-md)}}.andrew-johnson-resume-about-me{padding:var(--spacing-4xl)0;background:var(--color-background);gap:var(--spacing-xl);flex-direction:column;justify-content:center;align-items:center;width:100%;display:flex}.andrew-johnson-resume-about-me-content{gap:var(--spacing-lg);flex-direction:column;align-items:flex-start;width:100%;max-width:930px;display:flex}.andrew-johnson-resume-about-me-greeting{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-secondary);letter-spacing:var(--letter-spacing-tight);width:100%}.andrew-johnson-resume-about-me-name{flex-direction:column;align-items:flex-start;gap:0;width:100%;display:flex;overflow:hidden}.andrew-johnson-resume-about-me-name-line{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-5xl);line-height:var(--line-height-tight);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-tighter);width:100%}.andrew-johnson-resume-about-me-name-highlight{align-items:center;width:auto;max-width:100%;min-height:70px;display:inline-flex;position:relative}.andrew-johnson-resume-about-me-name-highlight-text{font-family:var(--font-primary);font-weight:var(--font-weight-normal);font-size:var(--text-5xl);line-height:var(--line-height-tight);color:var(--color-primary);white-space:nowrap;align-items:center;font-style:italic;display:inline-flex}.andrew-johnson-resume-about-me-name-highlight-bar{background-color:var(--color-primary);width:4px;height:38px;margin-left:var(--spacing-xs);flex-shrink:0;animation:blink 1s step-end infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.andrew-johnson-resume-about-me-description{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-primary);letter-spacing:var(--letter-spacing-tight);width:100%}.andrew-johnson-resume-about-me-values{gap:var(--spacing-md);width:100%;margin-top:var(--spacing-lg);flex-direction:column;display:flex}.andrew-johnson-resume-about-me-values-title{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-lg);color:var(--color-text-primary)}.andrew-johnson-resume-about-me-values-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));width:100%;display:grid}.andrew-johnson-resume-about-me-value-card{border:var(--border-width)var(--border-style)rgba(var(--color-text-primary-rgb),.12);border-radius:var(--border-radius);padding:var(--spacing-md);gap:var(--spacing-sm);background:var(--color-surface);flex-direction:column;display:flex}.andrew-johnson-resume-about-me-value-icon{font-size:var(--text-xl)}.andrew-johnson-resume-about-me-value-title{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-base);color:var(--color-text-primary)}.andrew-johnson-resume-about-me-value-description{font-family:var(--font-primary);font-weight:var(--font-weight-normal);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.andrew-johnson-resume-about-me-funfacts{gap:var(--spacing-sm);width:100%;margin-top:var(--spacing-lg);flex-direction:column;display:flex}.andrew-johnson-resume-about-me-funfacts-title{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-lg);color:var(--color-text-primary)}.andrew-johnson-resume-about-me-funfacts-list{padding-left:var(--spacing-xl);gap:var(--spacing-xs);color:var(--color-text-secondary);font-family:var(--font-primary);font-size:var(--text-sm);flex-direction:column;margin:0;display:flex}.andrew-johnson-resume-about-me-stats{gap:var(--spacing-2xl);align-items:center;width:100%;max-width:930px;display:flex}.andrew-johnson-resume-about-me-stat{gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--border-radius);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;transition:all .3s;display:flex}.andrew-johnson-resume-about-me-stat:hover{background:rgba(var(--color-primary-rgb),.05)}.andrew-johnson-resume-about-me-stat-number{justify-content:center;align-items:center;gap:0;display:flex}.andrew-johnson-resume-about-me-stat-number span{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--text-3xl);line-height:var(--line-height-none);color:var(--color-text-primary);white-space:nowrap;transition:color .3s}.andrew-johnson-resume-about-me-stat:hover .andrew-johnson-resume-about-me-stat-number span{color:var(--color-primary)}.andrew-johnson-resume-about-me-stat-label{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);letter-spacing:var(--letter-spacing-tight);white-space:nowrap;text-align:center}@media (max-width:768px){.andrew-johnson-resume-about-me{padding:var(--spacing-2xl)var(--spacing-lg)}.andrew-johnson-resume-about-me-name-highlight-text,.andrew-johnson-resume-about-me-name-line{font-size:var(--text-4xl)}.andrew-johnson-resume-about-me-stats{gap:var(--spacing-lg);flex-wrap:wrap;justify-content:center}}@media (max-width:480px){.andrew-johnson-resume-about-me{padding:var(--spacing-xl)var(--spacing-md);gap:var(--spacing-lg)}.andrew-johnson-resume-about-me-greeting{font-size:var(--text-xl)}.andrew-johnson-resume-about-me-name-highlight-text,.andrew-johnson-resume-about-me-name-line{font-size:var(--text-3xl)}.andrew-johnson-resume-about-me-stats{gap:var(--spacing-md)}.andrew-johnson-resume-about-me-stat-number span{font-size:var(--text-2xl)}}.andrew-johnson-resume-about-me-editable-greeting,.andrew-johnson-resume-about-me-editable-name,.andrew-johnson-resume-about-me-editable-supporting,.andrew-johnson-resume-about-me-editable-title{font-family:inherit;font-weight:inherit;font-size:inherit;line-height:inherit;color:inherit;letter-spacing:inherit;font-style:inherit;background:0 0;border:none;outline:none;width:auto;min-width:50px;margin:0;padding:0}.andrew-johnson-resume-about-me-editable-greeting{width:100%}.andrew-johnson-resume-about-me-editable-name{display:inline}.andrew-johnson-resume-about-me-editable-title{font-style:italic}.andrew-johnson-resume-about-me-editable-supporting{width:100%}.andrew-johnson-resume-about-me-rich-text-editor{width:100%;min-height:80px}.andrew-johnson-resume-about-me-rich-text-editor .ProseMirror{padding:var(--spacing-sm);border:1px dashed rgba(var(--color-primary-rgb),.3);border-radius:var(--border-radius-sm);background:rgba(var(--color-primary-rgb),.02);transition:all .2s}.andrew-johnson-resume-about-me-rich-text-editor .ProseMirror:focus{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.1)}.andrew-johnson-resume-about-me-rich-text-editor .ProseMirror p{margin:0}.andrew-johnson-resume-about-me-editable-greeting.editable-field-focus:focus,.andrew-johnson-resume-about-me-editable-name.editable-field-focus:focus,.andrew-johnson-resume-about-me-editable-stat-label.editable-field-focus:focus,.andrew-johnson-resume-about-me-editable-stat-value.editable-field-focus:focus,.andrew-johnson-resume-about-me-editable-supporting.editable-field-focus:focus,.andrew-johnson-resume-about-me-editable-title.editable-field-focus:focus{background:rgba(var(--color-primary-rgb),.05);border-radius:var(--border-radius-sm);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.2);outline:none}.andrew-johnson-resume-about-me-titles-editor{width:100%;padding:var(--spacing-md);background:rgba(var(--color-primary-rgb),.03);border:1px dashed rgba(var(--color-primary-rgb),.2);border-radius:var(--border-radius-xl);margin-top:var(--spacing-sm)}.andrew-johnson-resume-about-me-titles-editor-label{font-family:var(--font-primary);font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--spacing-sm)}.andrew-johnson-resume-about-me-titles-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.andrew-johnson-resume-about-me-title-item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-md);background:var(--color-surface);border:1px solid rgba(var(--color-primary-rgb),.2);border-radius:var(--border-radius);transition:all .2s;display:flex}.andrew-johnson-resume-about-me-title-item:hover{border-color:var(--color-primary);box-shadow:0 2px 8px rgba(var(--color-primary-rgb),.1)}.andrew-johnson-resume-about-me-title-item-number{background:rgba(var(--color-primary-rgb),.1);width:24px;height:24px;color:var(--color-primary);font-family:var(--font-primary);font-size:var(--text-xs);font-weight:var(--font-weight-bold);border-radius:var(--border-radius-full);flex-shrink:0;justify-content:center;align-items:center;display:flex}.andrew-johnson-resume-about-me-title-item .andrew-johnson-resume-about-me-editable-title{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-lg);color:var(--color-primary);padding:var(--spacing-xs)0;background:0 0;flex:1;font-style:italic}.andrew-johnson-resume-about-me-remove-title{color:#ef4444;border-radius:var(--border-radius);cursor:pointer;background:#ef44441a;border:1px solid #ef444433;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:all .2s;display:flex}.andrew-johnson-resume-about-me-remove-title:hover{color:#fff;background:#ef4444;border-color:#ef4444}.andrew-johnson-resume-about-me-add-title{justify-content:center;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm)var(--spacing-md);color:var(--color-primary);border:1px dashed rgba(var(--color-primary-rgb),.4);border-radius:var(--border-radius);cursor:pointer;font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);background:0 0;width:100%;transition:all .2s;display:flex}.andrew-johnson-resume-about-me-add-title:hover{background:rgba(var(--color-primary-rgb),.1);border-color:var(--color-primary);border-style:solid}.andrew-johnson-resume-about-me-stats-editor{width:100%;padding:var(--spacing-md);background:rgba(var(--color-primary-rgb),.03);border:1px dashed rgba(var(--color-primary-rgb),.2);border-radius:var(--border-radius-xl);margin-top:var(--spacing-2xl)}.andrew-johnson-resume-about-me-stats-editor-label{font-family:var(--font-primary);font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--spacing-sm)}.andrew-johnson-resume-about-me-stats-edit-list{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.andrew-johnson-resume-about-me-stat-item-edit{text-align:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-surface);border:1px solid rgba(var(--color-primary-rgb),.2);border-radius:var(--border-radius);flex-direction:column;transition:all .2s;display:flex;position:relative}.andrew-johnson-resume-about-me-stat-item-edit:hover{border-color:var(--color-primary);box-shadow:0 4px 12px rgba(var(--color-primary-rgb),.1)}.andrew-johnson-resume-about-me-remove-stat{top:var(--spacing-xs);right:var(--spacing-xs);color:#ef4444;border-radius:var(--border-radius);cursor:pointer;opacity:0;background:#ef44441a;border:1px solid #ef444433;justify-content:center;align-items:center;width:24px;height:24px;padding:0;transition:all .2s;display:flex;position:absolute}.andrew-johnson-resume-about-me-stat-item-edit:hover .andrew-johnson-resume-about-me-remove-stat{opacity:1}.andrew-johnson-resume-about-me-remove-stat:hover{color:#fff;background:#ef4444;border-color:#ef4444}.andrew-johnson-resume-about-me-add-stat{justify-content:center;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);min-height:100px;color:var(--color-primary);border:1px dashed rgba(var(--color-primary-rgb),.4);border-radius:var(--border-radius);cursor:pointer;font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);background:0 0;flex-direction:column;transition:all .2s;display:flex}.andrew-johnson-resume-about-me-add-stat:hover{background:rgba(var(--color-primary-rgb),.1);border-color:var(--color-primary);border-style:solid}.andrew-johnson-resume-about-me-add-stat span{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.andrew-johnson-resume-about-me-stat{position:relative}.andrew-johnson-resume-about-me-editable-stat-value{font-weight:var(--font-weight-bold);font-size:var(--text-3xl);color:inherit;min-width:30px;line-height:1}.andrew-johnson-resume-about-me-editable-stat-label,.andrew-johnson-resume-about-me-editable-stat-value{font-family:var(--font-primary);text-align:center;background:0 0;border:none;outline:none;width:auto;margin:0;padding:0}.andrew-johnson-resume-about-me-editable-stat-label{font-weight:var(--font-weight-medium);font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);min-width:50px;line-height:1.2}.andrew-johnson-resume-experience{background:var(--color-background);gap:var(--spacing-lg);flex-direction:column;align-items:flex-start;width:100%;max-width:930px;padding:0;display:flex}.andrew-johnson-resume-experience-header{gap:var(--spacing-md);align-items:center;display:flex}.andrew-johnson-resume-experience-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-experience-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);letter-spacing:var(--letter-spacing-normal)}.andrew-johnson-resume-experience-list{gap:var(--spacing-md);flex-direction:column;align-items:flex-start;width:100%;display:flex}.andrew-johnson-resume-experience-card{background-color:var(--color-surface);border-radius:var(--border-radius-md);width:100%;min-height:158px;padding:var(--spacing-md)var(--spacing-lg);border:var(--border-width)var(--border-style)var(--color-border);gap:var(--spacing-md);flex-direction:column;transition:all .3s;display:flex;position:relative}.andrew-johnson-resume-experience-card:hover{border-color:var(--color-primary);box-shadow:0 0 20px rgba(var(--color-primary-rgb),.15)}.andrew-johnson-resume-experience-card-header{justify-content:space-between;align-items:center;gap:var(--spacing-md);display:flex}.andrew-johnson-resume-experience-card-title-container{gap:var(--spacing-md);flex:1;align-items:center;min-width:0;display:flex}.andrew-johnson-resume-experience-card-icon-wrapper{flex-shrink:0;width:40px;height:40px;position:relative}.andrew-johnson-resume-experience-card-icon{object-fit:contain;border-radius:var(--border-radius-sm);flex-shrink:0;width:40px;height:40px}.andrew-johnson-resume-experience-card-icon.placeholder{background-color:rgba(var(--color-primary-rgb),.15);width:40px;height:40px;font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--color-primary);border-radius:var(--border-radius-sm);justify-content:center;align-items:center;display:flex}.andrew-johnson-resume-experience-card-title-container .ce-image-editor-wrapper{flex-shrink:0;width:40px;height:40px;position:relative;overflow:visible}.andrew-johnson-resume-experience-card-content{flex-direction:column;flex:1;align-items:flex-start;min-width:0;display:flex}.andrew-johnson-resume-experience-card-position{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--text-xl);line-height:var(--line-height-tight);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-tight);width:100%}.andrew-johnson-resume-experience-card-company{font-size:var(--text-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary);width:100%}.andrew-johnson-resume-experience-card-company,.andrew-johnson-resume-experience-card-period{font-family:var(--font-primary);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-tight)}.andrew-johnson-resume-experience-card-period{background-color:var(--color-surface);padding:var(--spacing-xs)var(--spacing-md);border-radius:var(--border-radius-sm);font-size:var(--text-base);line-height:var(--line-height-relaxed);color:var(--color-text-primary);white-space:nowrap;border:var(--border-width)var(--border-style)var(--color-border);transition:all .3s}.andrew-johnson-resume-experience-card:hover .andrew-johnson-resume-experience-card-period{border-color:var(--color-primary);color:var(--color-primary)}.andrew-johnson-resume-experience-card-divider{background-color:var(--color-border);width:100%;height:1px}.andrew-johnson-resume-experience-card-description{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);letter-spacing:var(--letter-spacing-tight)}.andrew-johnson-resume-experience-card-technology{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);padding:4px 10px}.andrew-johnson-resume-experience-card-border{border:var(--border-width)var(--border-style)var(--color-border);border-radius:var(--border-radius-md);pointer-events:none;position:absolute;inset:0}@media (max-width:768px){.andrew-johnson-resume-experience{padding:0 var(--spacing-lg)}.andrew-johnson-resume-experience-card{padding:var(--spacing-md)}.andrew-johnson-resume-experience-card-header{align-items:flex-start;gap:var(--spacing-md);flex-direction:column}.andrew-johnson-resume-experience-card-position{font-size:var(--text-lg)}}@media (max-width:480px){.andrew-johnson-resume-experience{padding:0 var(--spacing-md);gap:var(--spacing-md)}.andrew-johnson-resume-experience-header-title{font-size:var(--text-xl)}}.andrew-johnson-resume-experience-card-editing{position:relative}.andrew-johnson-resume-experience-remove-btn{top:var(--spacing-sm);right:var(--spacing-sm);border-radius:var(--border-radius-sm);color:#ef4444;cursor:pointer;z-index:10;background-color:#ef44441a;border:1px solid #ef44444d;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex;position:absolute}.andrew-johnson-resume-experience-remove-btn:hover{color:#fff;background-color:#ef4444;border-color:#ef4444}.andrew-johnson-resume-experience-editable-comment,.andrew-johnson-resume-experience-editable-company,.andrew-johnson-resume-experience-editable-period,.andrew-johnson-resume-experience-editable-position,.andrew-johnson-resume-experience-editable-title{border:none;border-bottom:2px dashed var(--color-border);font:inherit;color:inherit;background:0 0;margin:-2px -4px;padding:2px 4px;transition:all .2s}.andrew-johnson-resume-experience-editable-comment:focus,.andrew-johnson-resume-experience-editable-company:focus,.andrew-johnson-resume-experience-editable-period:focus,.andrew-johnson-resume-experience-editable-position:focus,.andrew-johnson-resume-experience-editable-title:focus{border-bottom-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.05);outline:none}.andrew-johnson-resume-experience-editable-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)}.andrew-johnson-resume-experience-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-experience-editable-position{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--text-xl);color:var(--color-text-primary)}.andrew-johnson-resume-experience-editable-company{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);color:var(--color-text-secondary)}.andrew-johnson-resume-experience-editable-period{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-base);color:var(--color-text-primary)}.andrew-johnson-resume-experience-rich-text-editor{width:100%}.andrew-johnson-resume-experience-rich-text-editor .ce-rich-text-editor-container{border:1px dashed var(--color-border);border-radius:var(--border-radius-sm);padding:var(--spacing-sm);transition:all .2s}.andrew-johnson-resume-experience-rich-text-editor .ce-rich-text-editor-container:focus-within{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.02)}.andrew-johnson-resume-experience-card-technologies{gap:var(--spacing-xs);flex-wrap:wrap;align-items:center;display:flex}.andrew-johnson-resume-experience-tech-item-editable{border-radius:var(--border-radius-sm);background-color:rgba(var(--color-primary-rgb),.08);border:1px dashed var(--color-border);align-items:center;gap:2px;padding:4px 8px;transition:all .2s;display:flex}.andrew-johnson-resume-experience-tech-item-editable:focus-within{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.12)}.andrew-johnson-resume-experience-tech-input{font-family:var(--font-primary);font-size:var(--text-xs);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-wide);background:0 0;border:none;min-width:40px;padding:0}.andrew-johnson-resume-experience-tech-input:focus{outline:none}.andrew-johnson-resume-experience-tech-input::placeholder{color:var(--color-text-secondary)}.andrew-johnson-resume-experience-tech-remove{width:16px;height:16px;color:var(--color-text-secondary);cursor:pointer;background-color:#0000;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.andrew-johnson-resume-experience-tech-remove:hover{color:#ef4444;background-color:#ef444426}.andrew-johnson-resume-experience-tech-add{border-radius:var(--border-radius-sm);background-color:rgba(var(--color-primary-rgb),.1);border:1px dashed var(--color-primary);width:28px;height:28px;color:var(--color-primary);cursor:pointer;justify-content:center;align-items:center;transition:all .2s;display:flex}.andrew-johnson-resume-experience-tech-add:hover{background-color:var(--color-primary);color:#fff;border-style:solid}.andrew-johnson-resume-experience-add-card{border:2px dashed var(--color-border);background-color:#0000;justify-content:center;align-items:center;min-height:100px;transition:all .2s;display:flex}.andrew-johnson-resume-experience-add-card:hover{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.02)}.andrew-johnson-resume-experience-add-btn{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md)var(--spacing-lg);background-color:rgba(var(--color-primary-rgb),.1);border:1px solid var(--color-primary);border-radius:var(--border-radius-sm);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;display:flex}.andrew-johnson-resume-experience-add-btn:hover{background-color:var(--color-primary);color:#fff}.andrew-johnson-resume-projects{background:var(--color-background);gap:var(--spacing-lg);flex-direction:column;align-items:flex-start;width:100%;max-width:930px;padding:0;display:flex}.andrew-johnson-resume-projects-header{gap:var(--spacing-md);align-items:center;display:flex}.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{gap:var(--spacing-sm);flex-wrap:wrap;align-items:center;width:100%;display:flex}.andrew-johnson-resume-projects-filter-chip{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;padding:6px 14px}.andrew-johnson-resume-projects-grid{gap:var(--spacing-md);grid-template-columns:repeat(2,1fr);width:100%;display:grid;position:relative}.andrew-johnson-resume-projects-card{background-color:var(--color-surface);border-radius:var(--border-radius-md);border:var(--border-width)var(--border-style)var(--card-border);width:100%;transition:all .3s;position:relative;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{gap:var(--spacing-sm);padding:var(--spacing-md);flex-direction:column;justify-content:center;align-items:center;height:100%;text-decoration:none;display:flex}.andrew-johnson-resume-projects-card-image{aspect-ratio:425/330;border-radius:var(--border-radius-normal);width:100%;position:relative;overflow:hidden}.andrew-johnson-resume-projects-card-image-inner{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .5s;position:absolute;inset:0}.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%;padding:var(--spacing-sm)0;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);display:flex}.andrew-johnson-resume-projects-card-header-right{align-items:center;gap:var(--spacing-sm);flex-shrink:0;display:flex}.andrew-johnson-resume-projects-card-title-container{gap:var(--spacing-xs);flex-direction:column;flex:1;align-items:flex-start;min-width:0;display:flex}.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);word-break:break-word;transition:color .3s}.andrew-johnson-resume-projects-card:hover .andrew-johnson-resume-projects-card-title{color:var(--color-primary)}.andrew-johnson-resume-projects-card-details{gap:var(--spacing-sm);justify-content:center;align-items:center;display:flex}.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{background-color:var(--color-text-muted);border-radius:var(--border-radius-full);flex-shrink:0;width:5px;height:5px}.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);border-radius:var(--border-radius-full);justify-content:center;align-items:center;width:48px;height:48px;transition:all .3s;display:flex;position:relative;overflow:hidden}.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{object-fit:contain;width:24px;height:24px;transition:transform .3s}.andrew-johnson-resume-projects-card:hover .andrew-johnson-resume-projects-card-icon{transform:translate(2px)}.andrew-johnson-resume-projects-card-icon-border{border:var(--border-width)var(--border-style)var(--color-border);border-radius:var(--border-radius-full);pointer-events:none;transition:border-color .3s;position:absolute;inset:0}.andrew-johnson-resume-projects-card:hover .andrew-johnson-resume-projects-card-icon-border{border-color:var(--color-primary)}.andrew-johnson-resume-projects-card-border{border:var(--border-width)var(--border-style)var(--card-border);border-radius:var(--border-radius-md);pointer-events:none;position:absolute;inset:0}.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{gap:var(--spacing-xs);flex-wrap:wrap;width:100%;display:flex}.andrew-johnson-resume-projects-card-technology{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);padding:4px 10px}.andrew-johnson-resume-projects-card-cta{justify-content:flex-end;align-items:center;display:flex}.andrew-johnson-resume-projects-card-cta-button{border-radius:var(--border-radius-normal);border:var(--border-width)var(--border-style)var(--color-border);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;white-space:nowrap;cursor:pointer;background-color:#0000;justify-content:center;align-items:center;padding:6px 14px;text-decoration:none;transition:all .3s;display:inline-flex}.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%;padding-top:var(--spacing-2xl);justify-content:center;align-items:center;display:flex}.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}.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{gap:var(--spacing-lg);grid-template-columns:1fr}.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{align-items:flex-start;gap:var(--spacing-sm);flex-direction:column}.andrew-johnson-resume-projects-card-header-right{justify-content:flex-start;width:100%}.andrew-johnson-resume-projects-card-cta{width:100%}.andrew-johnson-resume-projects-card-cta-button{justify-content:center;width:100%}}.andrew-johnson-resume-projects-card-editing{position:relative}.andrew-johnson-resume-projects-remove-btn{top:var(--spacing-sm);right:var(--spacing-sm);border-radius:var(--border-radius-sm);color:#ef4444;cursor:pointer;z-index:10;background-color:#ef44441a;border:1px solid #ef44444d;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex;position:absolute}.andrew-johnson-resume-projects-remove-btn:hover{color:#fff;background-color:#ef4444;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{border:none;border-bottom:2px dashed var(--color-border);font:inherit;color:inherit;background:0 0;margin:-2px -4px;padding:2px 4px;transition:all .2s}.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{border-bottom-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.05);outline:none}.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;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-position:right 6px center;background-repeat:no-repeat;padding:4px 24px 4px 8px;transition:all .2s}.andrew-johnson-resume-projects-category-select:focus{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.05);outline:none}.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);border:1px dashed var(--color-border);border-radius:var(--border-radius-normal);padding:6px 10px}.andrew-johnson-resume-projects-filter-chip-editing{border:1px dashed var(--color-border);align-items:center;gap:4px;display:inline-flex}.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);border-bottom:none!important;margin:0!important;padding:0!important}.andrew-johnson-resume-projects-editable-filter:focus{background-color:#0000!important;border-bottom:none!important}.andrew-johnson-resume-projects-remove-filter-btn{width:16px;height:16px;color:var(--color-text-secondary);cursor:pointer;background-color:#0000;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.andrew-johnson-resume-projects-remove-filter-btn:hover{color:#ef4444;background-color:#ef44441a}.andrew-johnson-resume-projects-add-filter-btn{border-radius:var(--border-radius-full);background-color:rgba(var(--color-primary-rgb),.1);border:1px solid var(--color-primary);width:28px;height:28px;color:var(--color-primary);cursor:pointer;justify-content:center;align-items:center;transition:all .2s;display:flex}.andrew-johnson-resume-projects-add-filter-btn:hover{background-color:var(--color-primary);color:#fff}.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:#0000}.andrew-johnson-resume-projects-richtext-editor .tiptap:focus{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.02);outline:none}.andrew-johnson-resume-projects-tech-editable{border-radius:var(--border-radius-sm);background-color:rgba(var(--color-primary-rgb),.08);border:1px dashed var(--color-border);align-items:center;gap:4px;padding:4px 8px;display:inline-flex}.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);border-bottom:none!important;margin:0!important;padding:0!important}.andrew-johnson-resume-projects-editable-tech:focus{background-color:#0000!important;border-bottom:none!important}.andrew-johnson-resume-projects-remove-tech-btn{width:16px;height:16px;color:var(--color-text-secondary);cursor:pointer;background-color:#0000;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.andrew-johnson-resume-projects-remove-tech-btn:hover{color:#ef4444;background-color:#ef44441a}.andrew-johnson-resume-projects-add-tech-btn{border-radius:var(--border-radius-sm);background-color:rgba(var(--color-primary-rgb),.1);border:1px solid var(--color-primary);width:24px;height:24px;color:var(--color-primary);cursor:pointer;justify-content:center;align-items:center;transition:all .2s;display:flex}.andrew-johnson-resume-projects-add-tech-btn:hover{background-color:var(--color-primary);color:#fff}.andrew-johnson-resume-projects-card-image-placeholder{justify-content:center;align-items: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);width:100%;height:100%;font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--text-3xl);color:var(--color-primary);flex-direction:column;display:flex}.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:#0000;justify-content:center;align-items:center;min-height:300px;display:flex}.andrew-johnson-resume-projects-add-card:hover{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.02);box-shadow:none;transform:none}.andrew-johnson-resume-projects-add-btn{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;flex-direction:column;transition:all .2s;display:flex}.andrew-johnson-resume-projects-add-btn:hover{background-color:var(--color-primary);color:#fff}.andrew-johnson-resume-projects-card .ce-image-editor-wrapper{width:100%;position:relative}.andrew-johnson-resume-education{background:var(--color-background);gap:var(--spacing-lg);flex-direction:column;align-items:flex-start;width:100%;max-width:930px;padding:0;display:flex}.andrew-johnson-resume-education-header{gap:var(--spacing-md);align-items:center;display:flex}.andrew-johnson-resume-education-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-education-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-education-list{gap:var(--spacing-md);flex-direction:column;align-items:flex-start;width:100%;display:flex}.andrew-johnson-resume-education-card{background-color:var(--color-surface);padding:var(--spacing-lg);border-radius:var(--border-radius-md);border:var(--border-width)var(--border-style)var(--color-border);width:100%;transition:all .3s;position:relative}.andrew-johnson-resume-education-card:hover{border-color:var(--color-primary);box-shadow:0 0 20px rgba(var(--color-primary-rgb),.15)}.andrew-johnson-resume-education-card-container{gap:var(--spacing-md);flex-direction:column;width:100%;display:flex}.andrew-johnson-resume-education-card-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);display:flex}.andrew-johnson-resume-education-card-meta{gap:var(--spacing-sm);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.andrew-johnson-resume-education-card-gpa{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--color-primary)}.andrew-johnson-resume-education-card-title-container{flex-direction:column;flex:1;align-items:flex-start;min-width:0;display:flex}.andrew-johnson-resume-education-card-title{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--text-xl);line-height:var(--line-height-tight);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-tight);width:100%}.andrew-johnson-resume-education-card-institute{font-size:var(--text-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary);width:100%}.andrew-johnson-resume-education-card-institute,.andrew-johnson-resume-education-card-period{font-family:var(--font-primary);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-tight)}.andrew-johnson-resume-education-card-period{background-color:var(--color-surface);padding:var(--spacing-xs)var(--spacing-md);border-radius:var(--border-radius-sm);font-size:var(--text-base);line-height:var(--line-height-relaxed);color:var(--color-text-primary);white-space:nowrap;border:var(--border-width)var(--border-style)var(--color-border);transition:all .3s}.andrew-johnson-resume-education-card:hover .andrew-johnson-resume-education-card-period{border-color:var(--color-primary);color:var(--color-primary)}.andrew-johnson-resume-education-card-divider{background-color:var(--color-border);width:100%;height:1px}.andrew-johnson-resume-education-card-description{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);letter-spacing:var(--letter-spacing-tight)}.andrew-johnson-resume-education-courses{gap:var(--spacing-xs);flex-direction:column;display:flex}.andrew-johnson-resume-education-courses-title{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.andrew-johnson-resume-education-courses-list{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.andrew-johnson-resume-education-course{border-radius:var(--border-radius-sm);background-color:rgba(var(--color-primary-rgb),.08);font-family:var(--font-primary);font-size:var(--text-xs);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-wide);padding:4px 10px}.andrew-johnson-resume-education-certifications{gap:var(--spacing-md);width:100%;margin-top:var(--spacing-lg);flex-direction:column;display:flex}.andrew-johnson-resume-education-certifications-title{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-lg);color:var(--color-text-primary)}.andrew-johnson-resume-education-certifications-list{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));width:100%;display:grid}.andrew-johnson-resume-education-certification-card{border:var(--border-width)var(--border-style)rgba(var(--color-text-primary-rgb),.12);border-radius:var(--border-radius-md);padding:var(--spacing-md);background-color:var(--color-surface);gap:var(--spacing-xs);flex-direction:column;display:flex}.andrew-johnson-resume-education-certification-title{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-base);color:var(--color-text-primary)}.andrew-johnson-resume-education-certification-meta{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);color:var(--color-text-secondary);justify-content:space-between;align-items:center;display:flex}.andrew-johnson-resume-education-certification-year{font-weight:var(--font-weight-semibold);color:var(--color-primary)}.andrew-johnson-resume-education-card-border{border:var(--border-width)var(--border-style)var(--color-border);border-radius:var(--border-radius-md);pointer-events:none;position:absolute;inset:0}@media (max-width:768px){.andrew-johnson-resume-education{padding:0 var(--spacing-lg)}.andrew-johnson-resume-education-card-header{align-items:flex-start;gap:var(--spacing-md);flex-direction:column}.andrew-johnson-resume-education-card-title{font-size:var(--text-lg)}}@media (max-width:480px){.andrew-johnson-resume-education{padding:0 var(--spacing-md);gap:var(--spacing-md)}.andrew-johnson-resume-education-header-title{font-size:var(--text-xl)}}.andrew-johnson-resume-education-card-editing{position:relative}.andrew-johnson-resume-education-remove-btn{top:var(--spacing-sm);right:var(--spacing-sm);border-radius:var(--border-radius-sm);color:#ef4444;cursor:pointer;z-index:10;background-color:#ef44441a;border:1px solid #ef44444d;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex;position:absolute}.andrew-johnson-resume-education-remove-btn:hover{color:#fff;background-color:#ef4444;border-color:#ef4444}.andrew-johnson-resume-education-editable-cert-issuer,.andrew-johnson-resume-education-editable-cert-title,.andrew-johnson-resume-education-editable-cert-year,.andrew-johnson-resume-education-editable-comment,.andrew-johnson-resume-education-editable-course,.andrew-johnson-resume-education-editable-degree,.andrew-johnson-resume-education-editable-gpa,.andrew-johnson-resume-education-editable-institution,.andrew-johnson-resume-education-editable-period,.andrew-johnson-resume-education-editable-title{border:none;border-bottom:2px dashed var(--color-border);font:inherit;color:inherit;background:0 0;margin:-2px -4px;padding:2px 4px;transition:all .2s}.andrew-johnson-resume-education-editable-cert-issuer:focus,.andrew-johnson-resume-education-editable-cert-title:focus,.andrew-johnson-resume-education-editable-cert-year:focus,.andrew-johnson-resume-education-editable-comment:focus,.andrew-johnson-resume-education-editable-course:focus,.andrew-johnson-resume-education-editable-degree:focus,.andrew-johnson-resume-education-editable-gpa:focus,.andrew-johnson-resume-education-editable-institution:focus,.andrew-johnson-resume-education-editable-period:focus,.andrew-johnson-resume-education-editable-title:focus{border-bottom-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.05);outline:none}.andrew-johnson-resume-education-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-education-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-education-editable-degree{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--text-xl);color:var(--color-text-primary)}.andrew-johnson-resume-education-editable-institution{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);color:var(--color-text-secondary)}.andrew-johnson-resume-education-editable-gpa{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--color-primary)}.andrew-johnson-resume-education-editable-period{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-base);color:var(--color-text-primary)}.andrew-johnson-resume-education-richtext-editor{width:100%}.andrew-johnson-resume-education-richtext-editor .tiptap{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);min-height:60px;padding:var(--spacing-sm);border:2px dashed var(--color-border);border-radius:var(--border-radius-sm);background-color:#0000}.andrew-johnson-resume-education-richtext-editor .tiptap:focus{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.02);outline:none}.andrew-johnson-resume-education-course-editable{border-radius:var(--border-radius-sm);background-color:rgba(var(--color-primary-rgb),.08);border:1px dashed var(--color-border);align-items:center;gap:4px;padding:4px 8px;display:inline-flex}.andrew-johnson-resume-education-editable-course{font-family:var(--font-primary);font-size:var(--text-xs);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-wide);border-bottom:none!important;margin:0!important;padding:0!important}.andrew-johnson-resume-education-editable-course:focus{background-color:#0000!important;border-bottom:none!important}.andrew-johnson-resume-education-remove-course-btn{width:16px;height:16px;color:var(--color-text-secondary);cursor:pointer;background-color:#0000;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.andrew-johnson-resume-education-remove-course-btn:hover{color:#ef4444;background-color:#ef44441a}.andrew-johnson-resume-education-add-course-btn{border-radius:var(--border-radius-sm);background-color:rgba(var(--color-primary-rgb),.1);border:1px solid var(--color-primary);width:24px;height:24px;color:var(--color-primary);cursor:pointer;justify-content:center;align-items:center;transition:all .2s;display:flex}.andrew-johnson-resume-education-add-course-btn:hover{background-color:var(--color-primary);color:#fff}.andrew-johnson-resume-education-add-card{border:2px dashed var(--color-border);background-color:#0000;justify-content:center;align-items:center;min-height:120px;transition:all .2s;display:flex}.andrew-johnson-resume-education-add-card:hover{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.02);box-shadow:none}.andrew-johnson-resume-education-add-btn{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-lg);background-color:rgba(var(--color-primary-rgb),.1);border:1px solid var(--color-primary);border-radius:var(--border-radius-sm);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;display:flex}.andrew-johnson-resume-education-add-btn:hover{background-color:var(--color-primary);color:#fff}.andrew-johnson-resume-education-certification-card-editing{position:relative}.andrew-johnson-resume-education-remove-cert-btn{top:var(--spacing-xs);right:var(--spacing-xs);border-radius:var(--border-radius-sm);color:#ef4444;cursor:pointer;z-index:10;background-color:#ef44441a;border:1px solid #ef44444d;justify-content:center;align-items:center;width:20px;height:20px;transition:all .2s;display:flex;position:absolute}.andrew-johnson-resume-education-remove-cert-btn:hover{color:#fff;background-color:#ef4444;border-color:#ef4444}.andrew-johnson-resume-education-editable-cert-title{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-base);color:var(--color-text-primary)}.andrew-johnson-resume-education-editable-cert-issuer{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);color:var(--color-text-secondary)}.andrew-johnson-resume-education-editable-cert-year{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--color-primary)}.andrew-johnson-resume-education-add-cert-card{border:2px dashed var(--color-border);background-color:#0000;justify-content:center;align-items:center;min-height:80px;display:flex}.andrew-johnson-resume-education-add-cert-card:hover{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.02)}.andrew-johnson-resume-education-add-cert-btn{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs)var(--spacing-md);background-color:rgba(var(--color-primary-rgb),.1);border:1px solid var(--color-primary);border-radius:var(--border-radius-sm);color:var(--color-primary);font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);cursor:pointer;transition:all .2s;display:flex}.andrew-johnson-resume-education-add-cert-btn:hover{background-color:var(--color-primary);color:#fff}.andrew-johnson-resume-skills{background:var(--color-background);gap:var(--spacing-lg);flex-direction:column;align-items:flex-start;width:100%;max-width:930px;padding:0;display:flex}.andrew-johnson-resume-skills-header{gap:var(--spacing-md);align-items:center;display:flex}.andrew-johnson-resume-skills-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-skills-grid{gap:var(--spacing-md);grid-template-columns:repeat(2,1fr);width:100%;display:grid;position:relative}.andrew-johnson-resume-skills-card{background-color:var(--color-surface);border-radius:var(--border-radius-md);align-items:center;gap:var(--spacing-md);width:100%;min-height:76px;padding:var(--spacing-sm)var(--spacing-md);border:var(--border-width)var(--border-style)var(--color-border);transition:all .3s;display:flex;position:relative}.andrew-johnson-resume-skills-card:hover{border-color:var(--color-primary);box-shadow:0 0 20px rgba(var(--color-primary-rgb),.15);transform:translateY(-2px)}.andrew-johnson-resume-skills-card-icon-container{border-radius:var(--border-radius-normal);flex-shrink:0;width:46px;height:46px;position:relative;overflow:hidden}.andrew-johnson-resume-skills-card-icon{object-fit:cover;object-position:center;border-radius:var(--border-radius-normal);width:100%;height:100%;transition:transform .3s;position:absolute;inset:0}.andrew-johnson-resume-skills-card:hover .andrew-johnson-resume-skills-card-icon{transform:scale(1.1)}.andrew-johnson-resume-skills-card-icon-border{border:var(--border-width)var(--border-style)var(--card-border);border-radius:var(--border-radius-normal);pointer-events:none;transition:border-color .3s;position:absolute;inset:0}.andrew-johnson-resume-skills-card:hover .andrew-johnson-resume-skills-card-icon-border{border-color:var(--color-primary)}.andrew-johnson-resume-skills-card-info{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;min-width:0;display:flex}.andrew-johnson-resume-skills-card-name{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--text-xl);line-height:var(--line-height-tight);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-tight);width:100%;transition:color .3s}.andrew-johnson-resume-skills-card:hover .andrew-johnson-resume-skills-card-name{color:var(--color-primary)}.andrew-johnson-resume-skills-card-description{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);width:100%}.andrew-johnson-resume-skills-card-border{border:var(--border-width)var(--border-style)var(--color-border);border-radius:var(--border-radius-md);pointer-events:none;position:absolute;inset:0}@media (max-width:768px){.andrew-johnson-resume-skills{padding:0 var(--spacing-lg)}.andrew-johnson-resume-skills-grid{grid-template-columns:1fr}.andrew-johnson-resume-skills-card{padding:var(--spacing-md)}}@media (max-width:480px){.andrew-johnson-resume-skills{padding:0 var(--spacing-md);gap:var(--spacing-md)}.andrew-johnson-resume-skills-header-title{font-size:var(--text-xl)}.andrew-johnson-resume-skills-card-name{font-size:var(--text-lg)}}.andrew-johnson-resume-skills-card-editing{position:relative}.andrew-johnson-resume-skills-remove-btn{top:var(--spacing-xs);right:var(--spacing-xs);border-radius:var(--border-radius-sm);color:#ef4444;cursor:pointer;z-index:10;background-color:#ef44441a;border:1px solid #ef44444d;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex;position:absolute}.andrew-johnson-resume-skills-remove-btn:hover{color:#fff;background-color:#ef4444;border-color:#ef4444}.andrew-johnson-resume-skills-editable-description,.andrew-johnson-resume-skills-editable-name,.andrew-johnson-resume-skills-editable-title{border:none;border-bottom:2px dashed var(--color-border);font:inherit;color:inherit;background:0 0;margin:-2px -4px;padding:2px 4px;transition:all .2s}.andrew-johnson-resume-skills-editable-description:focus,.andrew-johnson-resume-skills-editable-name:focus,.andrew-johnson-resume-skills-editable-title:focus{border-bottom-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.05);outline:none}.andrew-johnson-resume-skills-editable-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)}.andrew-johnson-resume-skills-editable-name{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--text-xl);color:var(--color-text-primary)}.andrew-johnson-resume-skills-editable-description{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-sm);color:var(--color-text-secondary)}.andrew-johnson-resume-skills-card-icon-placeholder{background-color:rgba(var(--color-primary-rgb),.15);width:100%;height:100%;font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--color-primary);border-radius:var(--border-radius-normal);justify-content:center;align-items:center;display:flex}.andrew-johnson-resume-skills-card .ce-image-editor-wrapper{flex-shrink:0;width:46px;height:46px;position:relative;overflow:visible}.andrew-johnson-resume-skills-add-card{border:2px dashed var(--color-border);background-color:#0000;justify-content:center;align-items:center;min-height:76px;transition:all .2s;display:flex}.andrew-johnson-resume-skills-add-card:hover{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.02);box-shadow:none;transform:none}.andrew-johnson-resume-skills-add-btn{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-lg);background-color:rgba(var(--color-primary-rgb),.1);border:1px solid var(--color-primary);border-radius:var(--border-radius-sm);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;display:flex}.andrew-johnson-resume-skills-add-btn:hover{background-color:var(--color-primary);color:#fff}.andrew-johnson-resume-contact{background:var(--color-background);gap:var(--spacing-lg);flex-direction:column;align-items:flex-start;width:100%;max-width:930px;padding:0;display:flex}.andrew-johnson-resume-contact-header{gap:var(--spacing-md);align-items:center;display:flex}.andrew-johnson-resume-contact-header-title{font-weight:var(--font-weight-medium);font-size:var(--text-2xl);white-space:nowrap}.andrew-johnson-resume-contact-header-title,.andrew-johnson-resume-contact-heading{font-family:var(--font-primary);line-height:var(--line-height-tight);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-tight)}.andrew-johnson-resume-contact-heading{font-weight:var(--font-weight-bold);font-size:var(--text-3xl);width:100%}.andrew-johnson-resume-contact-content{gap:var(--spacing-xl);align-items:flex-start;width:100%;display:flex}.andrew-johnson-resume-contact-details{gap:var(--spacing-md);flex-direction:column;flex:1;justify-content:center;align-items:flex-start;min-width:0;display:flex}.andrew-johnson-resume-contact-detail{background-color:var(--color-surface);gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--border-radius-normal);border:var(--border-width)var(--border-style)var(--color-border);align-items:center;width:100%;transition:all .3s;display:flex}.andrew-johnson-resume-contact-detail:hover{border-color:var(--color-primary);box-shadow:0 0 15px rgba(var(--color-primary-rgb),.2)}.andrew-johnson-resume-contact-detail-emoji{font-size:var(--text-xl);flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:flex}.andrew-johnson-resume-contact-detail-info{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;min-width:0;display:flex}.andrew-johnson-resume-contact-detail-label{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;width:100%}.andrew-johnson-resume-contact-detail-value{width:100%}.andrew-johnson-resume-contact-detail-value a{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-primary);letter-spacing:var(--letter-spacing-tight);white-space:nowrap;text-decoration:none;transition:color .3s}.andrew-johnson-resume-contact-detail-value a:hover{color:var(--color-primary)}.andrew-johnson-resume-contact-form{gap:var(--spacing-md);flex-direction:column;flex:1;align-items:flex-start;min-width:0;display:flex;overflow:hidden}.andrew-johnson-resume-contact-form-field{width:100%;position:relative}.andrew-johnson-resume-contact-form-input{background-color:var(--color-surface);width:100%;height:40px;padding:var(--spacing-sm)var(--spacing-md);border:var(--border-width)var(--border-style)var(--color-border);border-radius:var(--border-radius-sm);font-family:var(--font-primary);font-weight:var(--font-weight-normal);font-size:var(--text-base);line-height:var(--line-height-normal);color:var(--color-text-primary);outline:none;transition:all .3s}.andrew-johnson-resume-contact-form-input::placeholder{color:var(--color-text-muted);font-style:italic}.andrew-johnson-resume-contact-form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.2)}.andrew-johnson-resume-contact-form-input-border{pointer-events:none;position:absolute;inset:0}.andrew-johnson-resume-contact-form-input-border,.andrew-johnson-resume-contact-form-textarea{border:var(--border-width)var(--border-style)var(--color-border);border-radius:var(--border-radius-sm)}.andrew-johnson-resume-contact-form-textarea{background-color:var(--color-surface);width:100%;min-height:120px;padding:var(--spacing-sm)var(--spacing-md);font-family:var(--font-primary);font-weight:var(--font-weight-normal);font-size:var(--text-base);line-height:var(--line-height-relaxed);color:var(--color-text-primary);resize:vertical;outline:none;transition:all .3s}.andrew-johnson-resume-contact-form-textarea::placeholder{color:var(--color-text-muted);font-style:italic}.andrew-johnson-resume-contact-form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.2)}.andrew-johnson-resume-contact-form-textarea-border{border:var(--border-width)var(--border-style)var(--color-border);border-radius:var(--border-radius-sm);pointer-events:none;position:absolute;inset:0}.andrew-johnson-resume-contact-form-submit{width:100%;height:40px;margin-top:var(--spacing-sm)}.andrew-johnson-resume-contact-form-button{background-color:var(--color-primary);border:var(--border-width)var(--border-style)var(--color-primary);border-radius:var(--border-radius-normal);width:100%;height:100%;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-background);letter-spacing:var(--letter-spacing-tight);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:var(--spacing-xs);transition:all .3s;display:flex}.andrew-johnson-resume-contact-form-button:hover{color:var(--color-primary);box-shadow:0 0 20px rgba(var(--color-primary-rgb),.4);background-color:#0000;transform:translateY(-2px)}.andrew-johnson-resume-contact-form-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.andrew-johnson-resume-contact-status{padding:var(--spacing-md);border-radius:var(--border-radius);font-family:var(--font-primary);font-size:var(--text-sm);align-items:center;gap:var(--spacing-sm);animation:slideIn .3s;display:flex}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.andrew-johnson-resume-contact-status-success{background-color:rgba(var(--color-success-rgb),.1);border:var(--border-width)var(--border-style)var(--color-success);color:var(--color-success)}.andrew-johnson-resume-contact-status-error{background-color:rgba(var(--color-error-rgb),.1);border:var(--border-width)var(--border-style)var(--color-error);color:var(--color-error)}.andrew-johnson-resume-contact-editable-button-text,.andrew-johnson-resume-contact-editable-emoji,.andrew-johnson-resume-contact-editable-heading,.andrew-johnson-resume-contact-editable-label,.andrew-johnson-resume-contact-editable-title,.andrew-johnson-resume-contact-editable-value{border:none;border-bottom:2px dashed var(--color-border);color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;min-width:0;line-height:inherit;vertical-align:top;background:0 0;outline:none;margin:-2px -4px;padding:2px 4px;transition:all .2s;display:inline-block}.andrew-johnson-resume-contact-editable-button-text:hover,.andrew-johnson-resume-contact-editable-emoji:hover,.andrew-johnson-resume-contact-editable-heading:hover,.andrew-johnson-resume-contact-editable-label:hover,.andrew-johnson-resume-contact-editable-title:hover,.andrew-johnson-resume-contact-editable-value:hover{border-bottom-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05)}.andrew-johnson-resume-contact-editable-button-text:focus,.andrew-johnson-resume-contact-editable-emoji:focus,.andrew-johnson-resume-contact-editable-heading:focus,.andrew-johnson-resume-contact-editable-label:focus,.andrew-johnson-resume-contact-editable-title:focus,.andrew-johnson-resume-contact-editable-value:focus{border-bottom-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.1);outline:none}.andrew-johnson-resume-contact-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-contact-editable-heading{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--text-3xl);color:var(--color-text-primary)}.andrew-johnson-resume-contact-editable-emoji{font-size:var(--text-xl);text-align:center;border-bottom:none!important}.andrew-johnson-resume-contact-editable-emoji:focus,.andrew-johnson-resume-contact-editable-emoji:hover{border-bottom:none!important}.andrew-johnson-resume-contact-detail-editing{position:relative}.andrew-johnson-resume-contact-add-btn,.andrew-johnson-resume-contact-remove-btn{background:var(--color-primary);color:var(--color-background);border-radius:var(--border-radius);padding:var(--spacing-xs)var(--spacing-sm);font-size:var(--text-sm);font-family:var(--font-primary);cursor:pointer;align-items:center;gap:var(--spacing-xs);white-space:nowrap;border:none;transition:all .2s;display:flex}.andrew-johnson-resume-contact-remove-btn{background:var(--color-error)}.andrew-johnson-resume-contact-add-btn:hover,.andrew-johnson-resume-contact-remove-btn:hover{background:var(--color-secondary);box-shadow:0 2px 8px rgba(var(--color-primary-rgb),.3);transform:translateY(-1px)}.andrew-johnson-resume-contact-detail{position:relative}.andrew-johnson-resume-contact-remove-btn{z-index:2;border-radius:var(--border-radius-full);width:20px;height:20px;font-size:var(--text-xs);opacity:.8;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex;position:absolute;top:-8px;right:-8px}.andrew-johnson-resume-contact-remove-btn:hover{opacity:1;box-shadow:var(--shadow);transform:translateY(-1px)scale(1.1)}.andrew-johnson-resume-contact-add-info{padding:var(--spacing-md)0;justify-content:center;display:flex}.andrew-johnson-resume-contact-add-btn{border:2px dashed var(--color-border);color:var(--color-text-secondary);padding:var(--spacing-sm)var(--spacing-md);font-size:var(--text-sm);background:0 0}.andrew-johnson-resume-contact-add-btn:hover{color:#fff;border-color:var(--color-primary);background:var(--color-primary)}.andrew-johnson-resume-contact-form-input-editing,.andrew-johnson-resume-contact-form-textarea-editing{color:var(--color-text-secondary);border-style:dashed;font-style:italic}.andrew-johnson-resume-contact-form-input-editing:focus,.andrew-johnson-resume-contact-form-textarea-editing:focus{color:var(--color-text-primary);border-style:solid;font-style:normal}.andrew-johnson-resume-contact-editable-button-text{text-align:center;color:inherit!important;font-size:inherit!important;font-weight:inherit!important;background:0 0!important;border:none!important;padding:0!important}.andrew-johnson-resume-contact-editable-button-text:focus,.andrew-johnson-resume-contact-editable-button-text:hover{background:rgba(var(--color-primary-rgb),.1)!important;border:var(--border-width)var(--border-style)var(--color-primary)!important;padding:var(--spacing-xs)!important;border-radius:var(--border-radius)!important}@media (max-width:768px){.andrew-johnson-resume-contact{padding:0 var(--spacing-lg)}.andrew-johnson-resume-contact-content{gap:var(--spacing-xl);flex-direction:column}.andrew-johnson-resume-contact-heading{font-size:var(--text-2xl)}.andrew-johnson-resume-contact-detail-info{min-width:0}.andrew-johnson-resume-contact-remove-btn{width:18px;height:18px;top:-6px;right:-6px}.andrew-johnson-resume-contact-add-btn{padding:var(--spacing-xs)var(--spacing-sm);font-size:var(--text-xs)}}@media (max-width:480px){.andrew-johnson-resume-contact{padding:0 var(--spacing-md);gap:var(--spacing-md)}.andrew-johnson-resume-contact-header-title,.andrew-johnson-resume-contact-heading{font-size:var(--text-xl)}}.andrew-johnson-resume-page-container{max-width:1440px;padding:var(--spacing-3xl)var(--spacing-2xl);gap:var(--spacing-4xl);background:var(--color-background);align-items:flex-start;min-height:100vh;margin:0 auto;display:flex}.andrew-johnson-resume-page-main{gap:var(--spacing-4xl);flex-direction:column;flex:1;align-items:flex-start;min-width:0;display:flex}@media (max-width:1024px){.andrew-johnson-resume-page-container{padding:var(--spacing-2xl)var(--spacing-lg);gap:var(--spacing-2xl);flex-direction:column}.andrew-johnson-resume-page-main{gap:var(--spacing-3xl);width:100%}}@media (max-width:768px){.andrew-johnson-resume-page-container{padding:var(--spacing-xl)var(--spacing-md);gap:var(--spacing-xl)}.andrew-johnson-resume-page-main{gap:var(--spacing-2xl)}}