/* Full-bleed catalog route. The topbar stays portfolio chrome; the catalog owns
   everything below it and scrolls inside its own frame.
   raw-ok: #09183e / #7cb1fd are the embedded catalog's own dark chrome. They are
   deliberately not portfolio tokens — the frame must match the artifact it hosts. */
.catalog-route { display: flex; flex-direction: column; min-height: 100vh; }
.catalog-frame { flex: 1; display: block; width: 100%; border: 0; min-height: calc(100vh - 56px); background: #09183e; }
.catalog-note { margin: 0; padding: var(--spacing-10) var(--spacing-24); background: #09183e; color: #7cb1fd; font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; text-align: center; }
