.scene.projects-scene{justify-content:flex-start;overflow-y:auto}
.project-catalog{max-width:1450px;width:100%;margin:0 auto;padding-bottom:30px}
.catalog-eyebrow{font:11px 'JetBrains Mono',monospace;letter-spacing:2px;color:var(--accent);margin-bottom:12px}
.project-catalog h2{font:600 clamp(26px,3vw,38px) 'Space Grotesk',sans-serif;letter-spacing:-1px;margin-bottom:24px}
.catalog-featured-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.catalog-card{min-width:0;border:1px solid var(--border-soft);border-radius:19px;overflow:hidden;background:var(--surface);transition:border-color .2s,transform .2s}
.catalog-card:hover{border-color:var(--accent)}
.catalog-visual{height:145px;background:linear-gradient(135deg,#22d3ee13,#a78bfa18);position:relative;display:grid;place-items:center;overflow:hidden}
.catalog-visual>i{font-size:42px;color:var(--accent);opacity:.8}.catalog-visual>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:1}
.catalog-card-body{padding:20px}.catalog-card-category{font:9px 'JetBrains Mono',monospace;letter-spacing:1px;color:var(--accent)}
.catalog-card h3{font:600 20px/1.3 'Space Grotesk',sans-serif;letter-spacing:-.4px;margin:10px 0 12px}
.catalog-summary{font-size:14px;line-height:1.7;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:18px}
.catalog-tags{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 20px}.catalog-tags span{font:10px 'JetBrains Mono',monospace;border:1px solid var(--border-soft);border-radius:5px;padding:5px 7px;color:var(--text-secondary)}
.catalog-links{display:flex;align-items:center;flex-wrap:wrap;gap:14px;font-size:12px}.catalog-link{color:var(--text-secondary);display:inline-flex;align-items:center;gap:6px}.catalog-link:hover{color:var(--accent)}
.catalog-detail-button{font:600 12px 'Inter',sans-serif;padding:9px 13px;color:var(--text-primary);border:1px solid var(--border-soft);border-radius:8px;background:transparent;cursor:pointer}.catalog-detail-button:hover{border-color:var(--accent);color:var(--accent)}
.catalog-directory{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px;margin-top:48px;padding-top:32px;border-top:1px solid var(--border-soft)}
.catalog-directory-heading{grid-column:1/-1}.catalog-directory-heading h2{margin-bottom:0}
.catalog-folders{display:flex;flex-direction:column;gap:8px;align-self:start;position:sticky;top:0}
.catalog-folder{display:flex;align-items:center;gap:10px;padding:14px 12px;border:1px solid transparent;border-radius:10px;color:var(--text-muted);background:transparent;font:500 12px 'Inter',sans-serif;text-align:left;cursor:pointer}
.catalog-folder>span{flex:1}.catalog-folder small{font:10px monospace;opacity:.7}.catalog-folder[aria-pressed=true]{color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent);border-color:var(--border-soft)}.catalog-folder:hover{color:var(--text-primary)}
.catalog-results{min-width:0}.catalog-controls{display:grid;grid-template-columns:minmax(150px,1fr) minmax(100px,160px) minmax(100px,145px);gap:10px}
.catalog-controls :is(input,select){width:100%;min-width:0;border:1px solid var(--border-soft);border-radius:9px;background:var(--bg-panel);color:var(--text-primary);padding:12px;font:12px 'Inter',sans-serif}
.catalog-result-count{font:10px monospace;color:var(--text-muted);margin:16px 0 24px}
.catalog-group{margin-bottom:30px}.catalog-group>h3{font:500 17px 'Space Grotesk',sans-serif;margin-bottom:14px;display:flex;align-items:center;gap:12px}.catalog-group>h3 small{font:10px monospace;color:var(--text-muted)}
.catalog-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.catalog-project-grid .catalog-visual{height:100px}.catalog-empty{padding:36px;border:1px dashed var(--border-soft);border-radius:16px;color:var(--text-secondary)}.catalog-empty p{font-size:14px;line-height:1.7;margin:12px 0 20px}
.catalog-dialog{position:fixed;inset:0;margin:auto;width:min(720px,92vw);max-height:85vh;overflow:auto;background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:20px;color:var(--text-primary);padding:36px}.catalog-dialog::backdrop{background:#030712bb;backdrop-filter:blur(6px)}.catalog-dialog-close{position:absolute;right:18px;top:12px;font-size:26px;background:none;color:var(--text-muted);border:0;cursor:pointer}.catalog-dialog h2{font:600 28px/1.3 'Space Grotesk',sans-serif;margin:20px 0}.catalog-detail-summary{white-space:pre-line;font-size:16px;line-height:1.85;color:var(--text-secondary)}
@media(max-width:1200px){.catalog-featured-grid{grid-template-columns:minmax(0,1fr)}.catalog-featured-grid .catalog-card{display:grid;grid-template-columns:180px minmax(0,1fr)}.catalog-featured-grid .catalog-visual{height:100%;min-height:180px}.catalog-directory{grid-template-columns:170px minmax(0,1fr)}.catalog-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.catalog-controls input{grid-column:1/-1}.catalog-project-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.catalog-directory{grid-template-columns:minmax(0,1fr);gap:18px}.catalog-folders{position:static;flex-direction:row;overflow-x:auto;padding-bottom:8px}.catalog-folder{flex-shrink:0;padding:11px;font-size:11px}.catalog-featured-grid .catalog-card{display:block}.catalog-featured-grid .catalog-visual{height:130px;min-height:0}.catalog-card-body{padding:18px}.catalog-card h3{font-size:20px}.catalog-dialog{padding:28px 22px}.catalog-summary{font-size:14px}}
/* Replace the previous full-height carousel layout with natural document flow. */
.projects-layout.project-catalog{display:block;height:auto;min-height:0;flex:none;justify-content:initial}

.catalog-jump{margin-bottom:22px}.project-catalog:has(.catalog-featured[hidden]) .catalog-directory{margin-top:0;padding-top:0;border-top:0}

/* Neutral editorial placeholder until a real project image is uploaded. */
.catalog-visual.image-missing::after,.detail-image.image-missing::after{content:"";width:55%;height:55%;border:1px solid var(--border-soft);transform:rotate(-12deg);border-radius:18px;background:linear-gradient(135deg,#22d3ee12,transparent 60%);box-shadow:30px 20px 0 -1px #a78bfa0a}
.catalog-visual>img{transition:transform .4s}.catalog-card:hover .catalog-visual>img{transform:scale(1.035)}
a.catalog-detail-button{text-decoration:none;display:inline-block}.catalog-visual{aspect-ratio:16/9;height:auto!important;min-height:140px}
