.portfolio { display: flex; flex-direction: column; gap: 2.5rem; } section { display: flex; flex-direction: column; gap: 1rem; } section h3 { font-size: 1.2rem; font-weight: 500; color: var(--color-heading); border-bottom: 1px solid var(--color-border); padding-bottom: 0.4rem; margin-bottom: 0.25rem; } .projectList { display: flex; flex-direction: column; gap: 0.5rem; } .projectCard { background-color: var(--color-background-soft); border: 1px solid var(--color-border); border-radius: 8px; overflow: hidden; } .projectHeader { width: 100%; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; align-items: center; gap: 0.35rem 0.75rem; padding: 0.75rem 1.25rem; background: none; border: none; cursor: pointer; color: inherit; text-align: left; } .projectHeader:hover { background-color: var(--color-background-mute); } .projectHeader h4 { font-size: 1rem; font-weight: 600; color: var(--color-heading); margin: 0; grid-column: 1; grid-row: 1; } .chevron { font-size: 1.1rem; color: var(--color-text); transition: transform 0.25s ease; line-height: 1; grid-column: 2; grid-row: 1; align-self: center; } .chevron.open { transform: rotate(180deg); } .tagList { display: flex; flex-wrap: wrap; gap: 0.35rem; grid-column: 1 / -1; grid-row: 2; } .tag { display: inline-block; padding: 0.2rem 0.55rem; border-radius: 4px; font-size: 0.75rem; font-weight: 500; color: #ffffff; letter-spacing: 0.01em; } .expandWrapper { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.28s ease; } .expandWrapper.expanded { grid-template-rows: 1fr; } .expandContent { overflow: hidden; padding: 0 1.25rem; transition: padding 0.28s ease; } .expandWrapper.expanded .expandContent { padding: 0 1.25rem 0.9rem; } .expandContent p { color: var(--color-text); line-height: 1.6; margin: 0 0 0.6rem; font-size: 0.95rem; } .projectLinks { display: flex; gap: 0.75rem; } .projectLinks a { font-size: 0.85rem; }