CSS Interview Questions and Answers

CSSBeginner
Practice Now

Introduction

Welcome to this comprehensive guide on CSS interview questions and answers! Whether you're a seasoned developer looking to refresh your knowledge or a budding front-end enthusiast preparing for your first interview, this document is designed to equip you with the insights needed to excel. We've meticulously curated a wide range of topics, from fundamental concepts and advanced techniques to scenario-based challenges and best practices, ensuring you're well-prepared for any CSS-related query. Dive in and empower yourself with the knowledge to confidently navigate your next technical interview and showcase your CSS prowess!

CSS

Fundamental CSS Concepts

What is the CSS Box Model and what are its components?

Answer:

The CSS Box Model is a box that wraps around every HTML element. It consists of: content (the actual content), padding (space between content and border), border (a line around the padding), and margin (space outside the border).


Explain the difference between 'display: block', 'display: inline', and 'display: inline-block'.

Answer:

'block' elements take up the full width available and start on a new line. 'inline' elements take up only as much width as necessary and do not start on a new line. 'inline-block' elements are like inline but can have width and height set, and respect top/bottom margins/paddings.


What is CSS specificity and how is it calculated?

Answer:

Specificity is the algorithm that determines which CSS rule applies to an element when multiple rules could apply. It's calculated based on the type of selector: inline styles (1,0,0,0), IDs (0,1,0,0), classes/attributes/pseudo-classes (0,0,1,0), and elements/pseudo-elements (0,0,0,1).


Describe the purpose of 'position: relative', 'position: absolute', and 'position: fixed'.

Answer:

'relative' positions an element relative to its normal position. 'absolute' positions an element relative to its nearest positioned ancestor. 'fixed' positions an element relative to the viewport, meaning it stays in the same place even when the page is scrolled.


What is the difference between 'margin' and 'padding'?

Answer:

Margin is the space outside the border of an element, used to create space between elements. Padding is the space inside the border of an element, between the content and the border, used to create space around the content itself.


Answer:

CSS preprocessors are scripting languages that extend CSS with features like variables, nesting, mixins, and functions, which are then compiled into standard CSS. Popular examples include Sass (Syntactically Awesome Style Sheets), Less, and Stylus.


What is the purpose of the 'z-index' property?

Answer:

The 'z-index' property specifies the stack order of a positioned element and its descendants. An element with a higher z-index value will appear in front of an element with a lower z-index value. It only works on positioned elements.


How do you center a div horizontally and vertically using CSS?

Answer:

For horizontal centering, use margin: 0 auto; on a block element with a defined width. For vertical and horizontal centering, Flexbox is common: display: flex; justify-content: center; align-items: center; on the parent container.


What are CSS pseudo-classes and pseudo-elements, and provide an example of each?

Answer:

Pseudo-classes select elements based on their state or position (e.g., :hover, :nth-child(n)). Pseudo-elements select a part of an element (e.g., ::before, ::after, ::first-line).


Explain the concept of 'cascading' in CSS.

Answer:

Cascading is the process by which CSS determines which styles to apply when multiple rules target the same element. It follows rules of importance (origin), specificity, and source order to resolve conflicts and apply the most relevant style.


What is the difference between 'em' and 'rem' units?

Answer:

'em' units are relative to the font-size of the parent element. 'rem' (root em) units are relative to the font-size of the root HTML element. 'rem' is often preferred for better scalability and predictability.


Advanced CSS Techniques and Features

Explain the CSS Box Model and its two variations.

Answer:

The CSS Box Model describes how elements are rendered on a page, consisting of content, padding, border, and margin. The two variations are content-box (default), where width/height apply only to content, and border-box, where width/height include content, padding, and border, making layout calculations easier.


What is the purpose of z-index and how does it work?

Answer:

z-index controls the vertical stacking order of positioned elements that overlap. It only applies to elements with a position value other than static. Elements with a higher z-index value appear on top of elements with lower values within the same stacking context.


Describe the concept of CSS specificity. How is it calculated?

Answer:

CSS specificity is the algorithm browsers use to determine which CSS declaration applies to an element when multiple rules could. It's calculated based on the number of ID selectors (1,0,0,0), class/attribute/pseudo-class selectors (0,1,0,0), and element/pseudo-element selectors (0,0,1,0). Inline styles have the highest specificity.


When would you use CSS Grid over Flexbox, and vice-versa?

Answer:

Use CSS Grid for two-dimensional layouts (rows and columns simultaneously), ideal for overall page structure or complex component layouts. Use Flexbox for one-dimensional layouts (either rows or columns), best for distributing space among items in a single direction or aligning content within a component.


Explain the difference between em and rem units.

Answer:

em units are relative to the font-size of their parent element. This can lead to compounding issues if nested. rem units are relative to the font-size of the root HTML element (<html>), providing a more predictable and consistent scaling across the entire document.


What are CSS custom properties (variables) and their benefits?

Answer:

CSS custom properties, defined with --, allow you to store reusable values like colors or font sizes. They improve maintainability, reduce repetition, and enable dynamic styling changes via JavaScript, making it easier to manage design systems and themes.


How do you handle responsive images in CSS?

Answer:

Responsive images can be handled using max-width: 100%; height: auto; to scale down. For more control, use the <picture> element or srcset attribute with the <img> tag to serve different image sources based on viewport size or resolution, optimizing performance.


What is the purpose of object-fit and object-position?

Answer:

object-fit specifies how an <img> or <video> element should be resized to fit its container, similar to background-size for background images (e.g., cover, contain, fill). object-position defines the alignment of the element within its content box when object-fit is used.


Describe the concept of BEM (Block, Element, Modifier) methodology.

Answer:

BEM is a naming convention for CSS classes that aims to make front-end development more organized and maintainable. It structures class names as block__element--modifier, promoting modularity, reusability, and clear relationships between components, reducing specificity issues and conflicts.


What are CSS pseudo-classes and pseudo-elements? Give examples.

Answer:

Pseudo-classes select elements based on their state or position (e.g., :hover, :focus, :nth-child(n)). Pseudo-elements style specific parts of an element or insert content before/after it (e.g., ::before, ::after, ::first-line). They extend the capabilities of basic selectors.


Scenario-Based CSS Challenges

You have a div element that needs to be perfectly centered both horizontally and vertically within its parent container, regardless of the parent's size. How would you achieve this using CSS?

Answer:

Use Flexbox on the parent: display: flex; justify-content: center; align-items: center;. Alternatively, for absolute positioning: position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); on the child element.


Describe a scenario where you would use position: sticky; and explain how it works.

Answer:

position: sticky; is ideal for elements that should scroll with the content until they reach a certain point, then 'stick' to the viewport. For example, a navigation bar or a section header. It behaves like relative until its offset threshold is met, then like fixed.


You need to create a responsive grid layout where items automatically wrap to the next line and maintain equal spacing between them. Which CSS layout module would you choose and why?

Answer:

I would choose CSS Grid for more complex 2D layouts or Flexbox for 1D layouts that need wrapping. For this specific scenario, Flexbox with display: flex; flex-wrap: wrap; justify-content: space-around; is very effective for automatic wrapping and spacing.


A client reports that a button on their website looks different on mobile devices compared to desktop. What are the common reasons for this, and how would you debug it?

Answer:

Common reasons include missing or incorrect media queries, browser default styles, or viewport meta tag issues. I would debug using browser developer tools, inspecting computed styles, checking media query breakpoints, and verifying the viewport meta tag in the HTML.


You have a list of items, and you want the first item to have a different background color and the last item to have a larger font size, without adding extra classes to the HTML. How would you do this?

Answer:

Use CSS pseudo-classes: li:first-child { background-color: lightblue; } and li:last-child { font-size: 1.2em; }. This targets specific elements based on their position within a parent.


Explain how to implement a 'dark mode' toggle using CSS variables (custom properties).

Answer:

Define CSS variables for colors (e.g., --text-color, --bg-color) at the :root level. Create a class (e.g., .dark-mode) that redefines these variables with dark mode values. Toggle this class on the body or :root element using JavaScript.


You need to hide an element visually but keep it accessible to screen readers. How would you achieve this using CSS?

Answer:

Use a combination of properties: position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden;. Avoid display: none; or visibility: hidden; as they hide content from screen readers.


A layout has overlapping elements, and you need to control which element appears on top. Which CSS property would you use and how?

Answer:

I would use the z-index property. For z-index to work, the elements must have a position value other than static (e.g., relative, absolute, fixed, sticky). A higher z-index value means the element appears on top.


You're building a component that needs to scale its font size proportionally with the viewport width. What CSS unit would be most suitable for this?

Answer:

The vw (viewport width) unit is most suitable. For example, font-size: 2vw; would make the font size 2% of the viewport's width, scaling proportionally as the browser window resizes.


How would you ensure that images within a responsive container never overflow their parent, while maintaining their aspect ratio?

Answer:

Set max-width: 100%; and height: auto; on the image element. This ensures the image scales down if it's larger than its container but maintains its original aspect ratio and doesn't stretch.


CSS for Responsive Design and Accessibility

Explain the concept of responsive web design and its core principles.

Answer:

Responsive web design (RWD) is an approach to web development that makes web pages render well on a variety of devices and screen sizes. Its core principles include fluid grids (using percentages), flexible images (using max-width: 100%), and media queries to apply different styles based on device characteristics.


What are CSS media queries, and how are they used in responsive design?

Answer:

Media queries are CSS techniques that allow content to adapt to different conditions, such as screen resolution, device type, or orientation. They are used to apply specific CSS rules only when certain conditions are met, enabling different layouts or styles for various screen sizes, e.g., @media screen and (min-width: 768px) { ... }.


Differentiate between em, rem, px, and vw/vh units in responsive design contexts.

Answer:

px is an absolute unit. em is relative to the font-size of its parent element. rem is relative to the font-size of the root html element, making it more predictable for scaling. vw (viewport width) and vh (viewport height) are relative to the dimensions of the viewport, useful for truly fluid layouts.


How does Flexbox contribute to responsive layouts?

Answer:

Flexbox provides an efficient way to lay out, align, and distribute space among items in a container, even when their size is unknown or dynamic. It simplifies the creation of complex, flexible layouts that adapt well to different screen sizes without relying on floats or positioning.


How does CSS Grid contribute to responsive layouts, and when might you choose it over Flexbox?

Answer:

CSS Grid is a two-dimensional layout system, allowing simultaneous control over rows and columns. It's ideal for overall page layouts or complex component structures. You'd choose Grid for defining the main page structure, while Flexbox is better for distributing items within a single row or column.


What is the purpose of the viewport meta tag in responsive design?

Answer:

The viewport meta tag (<meta name='viewport' content='width=device-width, initial-scale=1.0'>) controls the width and scaling of the viewport on mobile devices. width=device-width sets the viewport width to the device's screen width, and initial-scale=1.0 prevents initial zooming, ensuring proper rendering.


Explain the importance of semantic HTML for accessibility.

Answer:

Semantic HTML uses elements that convey meaning about the content they contain (e.g., <header>, <nav>, <main>, <footer>, <article>). This is crucial for accessibility as screen readers and other assistive technologies rely on these semantic tags to understand the structure and meaning of a web page, enabling better navigation and comprehension for users with disabilities.


How can CSS be used to improve accessibility for users with visual impairments?

Answer:

CSS can improve accessibility by ensuring sufficient color contrast (WCAG guidelines), providing focus indicators for keyboard navigation (:focus pseudo-class), and allowing users to resize text without breaking layouts. It can also visually hide content (.sr-only) while keeping it available for screen readers.


What are ARIA attributes, and how do they relate to CSS and accessibility?

Answer:

ARIA (Accessible Rich Internet Applications) attributes provide additional semantic information to elements when native HTML semantics are insufficient, especially for dynamic content or custom UI components. While ARIA attributes are HTML, CSS can target them (e.g., [aria-expanded='true']) to apply visual styles that reflect their state, enhancing the user experience for assistive technology users.


Describe the concept of 'mobile-first' design and its benefits.

Answer:

Mobile-first design involves starting the design and development process for the smallest screens (mobile devices) first, then progressively enhancing the layout and features for larger screens. Benefits include improved performance on mobile, a focus on core content, and a more robust and scalable responsive design approach.


Answer:

Proper focus management ensures interactive elements are clearly highlighted when navigated via keyboard. CSS achieves this primarily using the :focus pseudo-class to apply distinct visual styles (e.g., outline, box-shadow, border) to focused elements. It's important to avoid outline: none unless a clear alternative focus indicator is provided.


Performance Optimization and Best Practices in CSS

What is the Critical Rendering Path (CRP) and how does CSS impact it?

Answer:

The Critical Rendering Path is the sequence of steps the browser takes to render a web page. CSS is a render-blocking resource, meaning the browser must parse and construct the CSS Object Model (CSSOM) before it can render the page, directly impacting the CRP's speed.


Explain the concept of CSS specificity and its impact on performance.

Answer:

CSS specificity determines which CSS rule applies to an element. While not a direct performance bottleneck, overly complex or high-specificity selectors can lead to larger CSS files and more complex style recalculations, potentially slowing down rendering.


How can you reduce the amount of CSS delivered to the user?

Answer:

Techniques include minification (removing whitespace and comments), purging unused CSS (e.g., with PurgeCSS), and code splitting or lazy loading CSS for specific components or routes. Using a CSS preprocessor can also help organize and reduce redundancy.


What are the benefits of using CSS preprocessors like Sass or Less for performance?

Answer:

Preprocessors improve maintainability and organization, which indirectly aids performance by reducing redundant code and making it easier to manage large stylesheets. Features like nesting, variables, and mixins lead to more concise and DRY (Don't Repeat Yourself) CSS.


Describe the difference between 'layout', 'paint', and 'composite' in browser rendering.

Answer:

Layout (or reflow) calculates the geometry and position of elements. Paint fills in pixels for each element. Composite draws layers onto the screen. Changes to CSS properties can trigger different combinations of these, with 'layout' being the most expensive.


How do CSS animations and transitions affect performance, and what are best practices?

Answer:

Animations and transitions can cause reflows and repaints if not handled carefully. Best practices involve animating properties that trigger only 'composite' changes (e.g., transform and opacity) rather than 'layout' or 'paint' properties (e.g., width, height, top, left).


What is the purpose of will-change CSS property?

Answer:

will-change is a hint to the browser about what properties are expected to change. This allows the browser to make optimizations in advance, such as promoting an element to its own layer, potentially preventing layout or paint operations when the change occurs.


Explain the concept of 'Atomic CSS' and its potential performance benefits.

Answer:

Atomic CSS involves creating single-purpose, immutable utility classes (e.g., mt-4 for margin-top: 1rem). This leads to highly reusable and small CSS files, as styles are composed from many small classes rather than large, specific blocks, reducing overall CSS size.


Answer:

Placing CSS in the <head> allows the browser to discover and download stylesheets as early as possible. This prevents a 'Flash of Unstyled Content' (FOUC) and allows the browser to construct the CSSOM and render the page progressively as soon as possible.


What is the impact of using @import for CSS files on performance?

Answer:

@import creates additional HTTP requests that are fetched sequentially, delaying the parsing of CSS and blocking rendering. It's generally less performant than using multiple <link> tags, which can be fetched in parallel by the browser.


CSS Preprocessors and Postprocessors

What is a CSS preprocessor, and what are its main benefits?

Answer:

A CSS preprocessor is a scripting language that extends CSS by adding features like variables, nesting, mixins, and functions. Its main benefits include improved maintainability, reusability, and organization of stylesheets, leading to more efficient development.


Answer:

Popular preprocessors include Sass (Syntactically Awesome Style Sheets) which offers powerful mixins and functions, Less (Leaner Style Sheets) known for its simplicity and dynamic variables, and Stylus which provides flexible syntax options.


Explain the concept of 'nesting' in CSS preprocessors and why it's useful.

Answer:

Nesting allows you to write CSS selectors inside other selectors, mirroring the HTML structure. This improves readability, reduces repetitive code, and helps organize styles for specific components or sections.


What are 'mixins' in the context of CSS preprocessors? Provide a simple example.

Answer:

Mixins are reusable blocks of CSS declarations that can be included in multiple rulesets. They help avoid code duplication and promote modularity. Example (Sass): @mixin border-radius($radius) { border-radius: $radius; } .box { @include border-radius(5px); }


How do variables in CSS preprocessors differ from CSS custom properties (CSS variables)?

Answer:

Preprocessor variables are compiled and replaced with their values at compile time, meaning they cannot be changed dynamically in the browser. CSS custom properties are native CSS, live in the browser, and can be manipulated at runtime via JavaScript.


What is a CSS postprocessor, and how does it differ from a preprocessor?

Answer:

A CSS postprocessor takes already compiled CSS and processes it further, often to add vendor prefixes, optimize, or lint. Unlike preprocessors that extend CSS syntax, postprocessors work on standard CSS after it's written or compiled.


Answer:

Autoprefixer is a popular CSS postprocessor. Its common use case is to automatically add vendor prefixes (e.g., -webkit-, -moz-) to CSS properties based on Can I Use data, ensuring cross-browser compatibility without manual effort.


Can you use CSS preprocessors and postprocessors together? If so, how?

Answer:

Yes, they are often used together. Typically, you write styles using a preprocessor (e.g., Sass), which compiles them into standard CSS. Then, a postprocessor (e.g., PostCSS with Autoprefixer) takes this compiled CSS and applies further transformations or optimizations.


What is the role of PostCSS in the modern CSS workflow?

Answer:

PostCSS is a tool for transforming CSS with JavaScript plugins. It acts as a framework for creating CSS postprocessors, allowing developers to use various plugins for tasks like autoprefixing, linting, minification, or even using future CSS syntax today.


When might you choose to use a CSS preprocessor over plain CSS, or vice-versa?

Answer:

Use a preprocessor for large, complex projects requiring extensive organization, reusability, and maintainability. For small, simple projects or when native CSS features like custom properties suffice, plain CSS might be preferred to avoid an extra build step.


CSS Architecture and Organization

What are the benefits of using a CSS methodology like BEM, OOCSS, or SMACSS?

Answer:

CSS methodologies provide structure, reusability, and maintainability to large stylesheets. They help prevent naming collisions, improve collaboration among developers, and make it easier to scale projects over time by defining clear rules for class naming and organization.


Explain the core principles of BEM (Block, Element, Modifier) and provide an example.

Answer:

BEM structures CSS class names into three parts: Block (standalone entity), Element (part of a block), and Modifier (flag on a block or element). This creates highly specific and readable class names, reducing selector specificity issues. Example: button, button__icon, button--primary.


How does OOCSS (Object-Oriented CSS) promote reusability and maintainability?

Answer:

OOCSS promotes two main principles: separating structure from skin, and separating container from content. This means creating reusable 'objects' (like .media-object) that can be applied across different contexts, reducing code duplication and making styles easier to update.


What is SMACSS (Scalable and Modular Architecture for CSS) and its main categories?

Answer:

SMACSS is a guide to CSS development that categorizes CSS rules into five types: Base, Layout, Modules, State, and Theme. This categorization helps organize stylesheets logically, making them more scalable and easier to manage in large applications.


When would you choose to use CSS Modules over a global CSS approach?

Answer:

CSS Modules provide local scoping for CSS classes by default, preventing naming collisions and ensuring styles are encapsulated within components. This is ideal for component-based architectures like React or Vue, where you want to avoid global style leakage and manage styles on a per-component basis.


What are the advantages of using a CSS preprocessor (e.g., Sass, Less) in a project?

Answer:

CSS preprocessors offer features like variables, nesting, mixins, functions, and partials, which improve code organization, reusability, and maintainability. They allow for more dynamic and programmatic CSS, reducing repetition and making complex stylesheets easier to manage.


Describe the concept of 'critical CSS' and why it's important for performance.

Answer:

Critical CSS refers to the minimum amount of CSS required to render the 'above-the-fold' content of a webpage immediately. Inlining this CSS directly into the HTML reduces render-blocking requests, improving perceived page load speed and user experience, especially on mobile devices.


How do you typically structure your CSS files in a large project?

Answer:

A common structure involves organizing files by methodology (e.g., BEM, SMACSS categories), feature, or component. This often includes a base/ folder for resets and typography, components/ or modules/ for reusable UI elements, layout/ for grid and structural styles, and utilities/ for single-purpose classes.


What is the purpose of a CSS style guide or design system?

Answer:

A CSS style guide or design system provides a single source of truth for design principles, UI components, and styling conventions. It ensures consistency across a product, streamlines development, improves collaboration, and makes onboarding new team members easier by documenting established patterns.


Explain the concept of 'utility-first CSS' and its pros/cons.

Answer:

Utility-first CSS involves composing UIs almost entirely from small, single-purpose utility classes (e.g., flex, pt-4, text-center). Pros include rapid development, smaller CSS bundles, and easier maintenance. Cons can include cluttered HTML, difficulty with complex responsive patterns, and a steeper learning curve for new developers.


How do you handle responsive design within your CSS architecture?

Answer:

Responsive design is typically handled using media queries, often integrated within component-specific styles or dedicated responsive files. Approaches include mobile-first (defaulting to mobile styles and adding larger breakpoints) or desktop-first, ensuring layouts adapt gracefully across various screen sizes.


What are some strategies for managing CSS specificity issues?

Answer:

Strategies include using lower specificity selectors (classes over IDs), following a consistent naming convention (like BEM), avoiding !important unless absolutely necessary, and organizing CSS to ensure more specific rules come after general ones. CSS methodologies inherently help manage specificity.


Debugging and Troubleshooting CSS Issues

What are the primary tools you use for debugging CSS issues in a browser?

Answer:

The primary tools are the browser's built-in Developer Tools (DevTools), specifically the 'Elements' tab for inspecting HTML and applied styles, and the 'Computed' tab for understanding the final calculated styles. The 'Console' can also be useful for JavaScript-related issues that might impact CSS.


How do you typically approach a situation where a CSS style you've written isn't being applied?

Answer:

First, I check for typos in selectors or property names. Then, I use DevTools to inspect the element and see which styles are applied and which are overridden. I look for specificity conflicts, incorrect file paths, or issues with cascading order and inheritance.


Explain the concept of CSS specificity and how it impacts debugging.

Answer:

Specificity determines which CSS rule gets applied when multiple rules target the same element. It's calculated based on the number of IDs, classes/attributes, and element types in a selector. Debugging often involves identifying higher-specificity rules that are overriding intended styles.


When would you use !important and what are its potential drawbacks?

Answer:

!important is used to override any other declaration, regardless of specificity. It should be used sparingly, typically for quick fixes or utility classes, as it makes CSS harder to maintain, debug, and override later, leading to 'specificity wars'.


How do you debug layout issues, such as elements overlapping or not aligning correctly?

Answer:

I use DevTools to inspect the box model (margin, border, padding, content) of the affected elements. I check display properties (flexbox, grid, block, inline-block), position properties, and float values. Visualizing the layout with the 'Layout' tab in DevTools is also very helpful.


What does box-sizing: border-box; do, and why is it useful for debugging layout?

Answer:

box-sizing: border-box; changes the box model so that padding and border are included in the element's total width and height. This makes layout calculations more intuitive and predictable, reducing common issues where elements exceed their intended dimensions due to added padding/borders.


Describe a scenario where a CSS animation or transition isn't working as expected and how you'd debug it.

Answer:

I'd check if the transition or animation properties are correctly defined, including duration, timing function, and delay. I'd ensure the triggering event (e.g., :hover, class toggle) is correctly applied. DevTools' 'Animations' panel is invaluable for inspecting and replaying animations.


How do you handle cross-browser CSS compatibility issues?

Answer:

I use browser-specific prefixes (e.g., -webkit-, -moz-) for experimental or non-standard properties, though modern CSS reduces this need. I also use tools like Autoprefixer during the build process and test thoroughly across target browsers, often using services like BrowserStack.


An element has position: absolute; but isn't positioned relative to its intended parent. What could be the issue?

Answer:

The most common issue is that the intended parent element does not have a position property set to relative, absolute, fixed, or sticky. An absolutely positioned element will position itself relative to the nearest positioned ancestor, or the initial containing block if none exists.


You're seeing unexpected margins or padding around elements. How do you diagnose this?

Answer:

I use DevTools to inspect the element and its siblings/parents, looking at their computed margins and padding. Common causes include default browser styles, margin collapsing between block-level elements, or unintended margin or padding values applied through general selectors or inheritance.


Summary

Thorough preparation for CSS interview questions is invaluable. By understanding core concepts, common challenges, and best practices, you not only demonstrate your technical proficiency but also your commitment to crafting robust and visually appealing web experiences. This readiness instills confidence and significantly enhances your chances of success in securing your desired role.

Remember that the web development landscape is constantly evolving. Continuous learning, staying updated with new CSS features, methodologies, and frameworks, is crucial for long-term career growth. Embrace the journey of perpetual improvement, and let your passion for CSS shine through in every project and every interview.