/* Shared, deterministic mosaic. Seven items complete a block; new blocks repeat. */
.catalog-page { background:#f6f8ff; color:#101a33; }
.catalog-page [hidden] { display:none!important; }
.catalog-main { max-width:1440px; padding:48px 60px 80px; margin:auto; }
.catalog-heading { margin-bottom:38px; }
.catalog-heading h1 { font-size:clamp(32px,4.2vw,60px); line-height:1.12; letter-spacing:-.045em; margin:0 0 14px; color:#101a33; }
.catalog-heading h1 span { color:#2354ec; margin-right:.12em; }
.catalog-heading p,.catalog-subtitle { margin:0; font-size:19px; line-height:1.5; color:#63749a; }
.catalog-heading--center { text-align:center; }
.catalog-section { margin:0 0 48px; }
.catalog-section h2 { font-size:28px; line-height:1.2; letter-spacing:-.025em; margin:0 0 20px; color:#101a33; }
.catalog-section h2.catalog-section-title { font-size:40px; margin-bottom:8px; }
.catalog-tools { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:12px; }
.catalog-tools--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
[data-photo-tools] { grid-template-columns:repeat(4,minmax(0,1fr)); }
.catalog-idea { padding:0; border:1px solid #d8e2ff; text-align:left; font:inherit; cursor:pointer; background:linear-gradient(140deg,#edf3ff,#fff0f8); }
.catalog-idea__art { display:grid; place-content:center; position:relative; aspect-ratio:1/1.08; color:#2354ec; font-size:88px; background:radial-gradient(ellipse at center,#d8e4ff,transparent 65%); }
.catalog-idea__art span { position:absolute; top:20%; right:24%; font-size:36px; color:#ec5692; }
.catalog-idea-dialog { width:min(560px,calc(100% - 32px)); max-height:85dvh; overflow:auto; box-sizing:border-box; border:0; border-radius:24px; padding:28px; color:#101a33; box-shadow:0 20px 100px #101a3333; }
.catalog-idea-dialog::backdrop { background:#101a3377; }
.catalog-idea-dialog h2 { font-size:24px; margin:0; }
.catalog-idea-dialog p { line-height:1.5; color:#63749a; }
.catalog-idea-dialog label { display:block; font-weight:700; margin-bottom:8px; }
.catalog-idea-dialog textarea { width:100%; box-sizing:border-box; resize:vertical; border:1px solid #b9c9ef; border-radius:12px; padding:14px; font:inherit; font-size:16px; background:#f8faff; color:#101a33; }
.catalog-idea-dialog small { display:block; margin-top:8px; color:#63749a; }
.catalog-idea-dialog :focus-visible { outline:3px solid #2354ec; outline-offset:3px; }
@media(max-width:600px) { [data-photo-tools] { grid-template-columns:repeat(2,minmax(0,1fr)); } .catalog-idea-dialog { padding:20px; } }
.catalog-card { position:relative; overflow:hidden; border-radius:16px; min-width:0; display:block; background:#18345b; color:#fff; text-decoration:none; isolation:isolate; }
.catalog-card > img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 20%; transition:transform .25s ease; }
.catalog-card::after { content:''; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,rgba(7,18,39,.84)); z-index:0; pointer-events:none; }
.catalog-card__title { position:absolute; bottom:22px; left:22px; right:18px; font-weight:750; font-size:21px; line-height:1.22; z-index:1; text-wrap:balance; }
.catalog-card__state { position:absolute; bottom:8px; left:22px; z-index:1; font-size:12px; color:#dce5f5; }
.catalog-card:has(.catalog-card__state) .catalog-card__title { bottom:30px; }
.catalog-card__create { position:absolute; top:16px; right:16px; z-index:2; padding:8px 12px; border-radius:30px; background:#fff; color:#143aa7; font-size:13px; font-weight:700; }
.catalog-card:focus-visible,.catalog-filter:focus-visible,.catalog-play:focus-visible,.catalog-more:focus-visible { outline:3px solid #2354ec; outline-offset:4px; }
.catalog-card:hover > img { transform:scale(1.025); }
.catalog-tool { background:#fff; color:#101a33; box-shadow:0 8px 24px rgba(68,111,187,.05); }
.catalog-tool > img { height:auto; aspect-ratio:1/1.08; }
.catalog-tools--three .catalog-tool > img { aspect-ratio:1.55; }
/* Original portrait illustrations need a taller crop to retain faces and context. */
[data-catalog-panel='video'] .catalog-tools--three .catalog-tool > img { aspect-ratio:6/5; object-fit:cover; }
.catalog-tool::after { display:none; }
.catalog-tool .catalog-card__title { position:static; display:block; font-size:16px; padding:14px 14px 6px; color:#101a33; }
.catalog-tool .catalog-card__title { min-height:56px; }
.catalog-tool .catalog-card__state { position:static; display:block; color:#687899; padding:0 14px 12px; font-size:12px; }
.catalog-filters { display:flex; align-items:center; gap:10px; margin:24px 0 20px; overflow-x:auto; padding:4px 0; scrollbar-width:thin; }
.catalog-heading--center + .catalog-filters { justify-content:center; }
.catalog-filter { flex:0 0 auto; padding:10px 18px; border:1px solid #dbe4fa; border-radius:40px; color:#526b9d; font:inherit; font-size:14px; cursor:pointer; background:#f4f7ff; }
.catalog-filter[aria-pressed='true'] { color:#fff; background:#2354ec; border-color:#2354ec; }
.catalog-mosaic { display:grid; gap:16px; }
.catalog-mosaic__group { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:16px; }
.catalog-mosaic__group > .catalog-card { grid-column:span 3; min-height:280px; aspect-ratio:.8; }
.catalog-mosaic__group[data-count='7'] { grid-template-rows:repeat(6,110px); }
.catalog-mosaic__group[data-count='7'] > :nth-child(1) { grid-area:1/1/5/4; }
.catalog-mosaic__group[data-count='7'] > :nth-child(2) { grid-area:1/4/3/10; }
.catalog-mosaic__group[data-count='7'] > :nth-child(3) { grid-area:1/10/3/13; }
.catalog-mosaic__group[data-count='7'] > :nth-child(4) { grid-area:3/4/5/10; }
.catalog-mosaic__group[data-count='7'] > :nth-child(5) { grid-area:3/10/7/13; }
.catalog-mosaic__group[data-count='7'] > :nth-child(6) { grid-area:5/1/7/5; }
.catalog-mosaic__group[data-count='7'] > :nth-child(7) { grid-area:5/5/7/10; }
.catalog-mosaic__group[data-count='7'] > .catalog-card { min-height:0; aspect-ratio:auto; }
.catalog-mosaic__group[data-count='1'] > .catalog-card,.catalog-mosaic__group[data-count='2'] > .catalog-card { grid-column:span 6; aspect-ratio:1.4; }
.catalog-mosaic__group[data-count='3']:not(.catalog-mosaic__group--music) > .catalog-card { grid-column:span 4; }
.catalog-mosaic__group[data-count='5']:not(.catalog-mosaic__group--examples) > :first-child,.catalog-mosaic__group[data-count='6'] > :nth-child(3n+1) { grid-column:span 6; }
.catalog-mosaic__group--examples { grid-template-rows:300px 260px; }
.catalog-mosaic__group--examples > .catalog-card { aspect-ratio:auto; min-height:0; }
.catalog-mosaic__group--examples > :nth-child(1) { grid-area:1/1/2/8; }
.catalog-mosaic__group--examples > :nth-child(2) { grid-area:1/8/3/13; }
.catalog-mosaic__group--examples > :nth-child(3) { grid-area:2/1/3/5; }
.catalog-mosaic__group--examples > :nth-child(4) { grid-area:2/5/3/8; }
.catalog-mosaic__group--examples > :nth-child(5) { grid-column:1/-1; aspect-ratio:2.8; }
.catalog-mosaic__group.catalog-video-current { grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:20px; }
.catalog-mosaic__group.catalog-video-current > .catalog-card:nth-child(n) { grid-area:auto;grid-column:auto;aspect-ratio:16/9;min-height:0; }
.catalog-video-current > .catalog-card > img { object-fit:contain;background:#19202b; }
@media(max-width:600px) { .catalog-mosaic__group.catalog-video-current { grid-template-columns:1fr;gap:16px; }.catalog-mosaic__group.catalog-video-current > .catalog-card:nth-child(n) {grid-column:1/-1;aspect-ratio:16/9;} }
.catalog-mosaic__group--music { grid-template-rows:repeat(2,170px); margin-bottom:36px; }
.catalog-mosaic__group--music > .catalog-card { aspect-ratio:auto; min-height:0; }
.catalog-mosaic__group--music > :nth-child(1) { grid-area:1/1/3/9; }
.catalog-mosaic__group--music > :nth-child(2) { grid-area:1/9/2/13; }
.catalog-mosaic__group--music > :nth-child(3) { grid-area:2/9/3/13; }
.catalog-mosaic__group--themes { grid-template-rows:repeat(2,200px); }
.catalog-mosaic__group--themes > .catalog-card { min-height:0; aspect-ratio:auto; }
.catalog-mosaic__group--themes[data-count='6'] > :nth-child(1) { grid-area:1/1/3/4; }
.catalog-mosaic__group--themes[data-count='6'] > :nth-child(2) { grid-area:1/4/2/7; }
.catalog-mosaic__group--themes[data-count='6'] > :nth-child(3) { grid-area:1/7/2/10; }
.catalog-mosaic__group--themes[data-count='6'] > :nth-child(4) { grid-area:1/10/2/13; }
.catalog-mosaic__group--themes[data-count='6'] > :nth-child(5) { grid-area:2/4/3/8; }
.catalog-mosaic__group--themes[data-count='6'] > :nth-child(6) { grid-area:2/8/3/13; }
.catalog-card__description { position:absolute; bottom:32px; left:22px; right:18px; z-index:1; font-size:13px; line-height:1.35; color:#edf2ff; }
.catalog-card--described:has(.catalog-card__state) .catalog-card__title { bottom:82px; }
.catalog-mosaic__group:has(> [hidden]) { grid-template-rows:none; }
.catalog-mosaic__group:has(> [hidden]) > .catalog-card:not([hidden]) { grid-area:auto; grid-column:span 6; min-height:250px; aspect-ratio:1.4; }
.catalog-play { position:absolute; z-index:2; left:20px; bottom:18px; width:48px; height:48px; border:0; border-radius:50%; background:#fff; cursor:pointer; display:grid; place-items:center; }
.catalog-play img { width:21px; height:21px; }
.catalog-card:has(.catalog-play) .catalog-card__title { left:82px; bottom:29px; }
.catalog-status { color:#657594; font-size:15px; line-height:1.5; }
.catalog-card--no-cover { background:#16376a; }
/* Equal portrait cards in row order. Fill the frame without letterbox bands. */
[data-catalog-panel='photo'] .catalog-mosaic__group[data-count] { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:none; gap:16px; }
[data-catalog-panel='photo'] .catalog-mosaic__group[data-count] > .catalog-card:nth-child(n) { grid-area:auto; grid-column:auto; width:100%; height:auto; min-height:0; aspect-ratio:3/4; margin:0; }
[data-catalog-panel='photo'] .catalog-mosaic__group[data-count] > .catalog-card > img { width:100%; height:100%; object-fit:cover; object-position:center top; transform:none; }
[data-catalog-panel='photo'] .catalog-mosaic__group[data-count] .catalog-card__title { font-size:18px; left:16px; right:16px; bottom:18px; }
@media(max-width:900px) { [data-catalog-panel='photo'] .catalog-mosaic__group[data-count] { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:600px) { [data-catalog-panel='photo'] .catalog-mosaic__group[data-count] { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } [data-catalog-panel='photo'] .catalog-mosaic__group[data-count] .catalog-card__title { font-size:14px; left:12px; right:12px; bottom:14px; } }
.catalog-more { display:block; margin:36px auto 0; padding:14px 30px; border:1px solid #2354ec; border-radius:40px; color:#2354ec; background:transparent; font:inherit; font-weight:650; cursor:pointer; }
.catalog-player-dialog { border:0; border-radius:20px; padding:24px; width:min(840px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; }
.catalog-player-dialog::backdrop { background:rgba(5,16,39,.75); }
.catalog-player-dialog__head { display:flex; gap:20px; align-items:center; justify-content:space-between; margin-bottom:20px; }
.catalog-player-dialog h2 { margin:0; font-size:24px; }
.catalog-player-dialog video { display:block; width:100%; max-height:70dvh; }
.catalog-player-dialog audio { width:100%; }
@media(max-width:900px) { .catalog-main {padding:32px 24px 60px;} .catalog-tools {gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));} .catalog-tools--three {grid-template-columns:repeat(3,minmax(0,1fr));} .catalog-tool .catalog-card__title {font-size:13px;padding:10px;} .catalog-card__title {font-size:18px;} .catalog-mosaic__group[data-count='7'] {grid-template-rows:repeat(6,85px);} }
@media(max-width:600px) {
 .catalog-main {padding:24px 16px 48px;} .catalog-heading {margin-bottom:28px;} .catalog-heading h1 {font-size:34px;} .catalog-heading p,.catalog-subtitle {font-size:16px;} .catalog-heading--center {text-align:left;}
 .catalog-section {margin-bottom:32px;} .catalog-section h2,.catalog-section h2.catalog-section-title {font-size:28px;}
 .catalog-tools {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;} .catalog-tools > :last-child:nth-child(odd) {grid-column:1/-1;} .catalog-tools > :last-child:nth-child(odd) > img {aspect-ratio:2.5;} .catalog-tool .catalog-card__title {font-size:15px;}
 [data-catalog-panel='video'] .catalog-tools--three > :last-child:nth-child(odd) {grid-column:auto;}
 [data-catalog-panel='video'] .catalog-tools--three > .catalog-tool > img {aspect-ratio:6/5;}
 .catalog-filters {justify-content:flex-start!important;gap:8px;margin:18px 0;} .catalog-filter {font-size:13px;padding:9px 14px;}
 .catalog-mosaic__group {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;grid-template-rows:none!important;}
 .catalog-mosaic__group > .catalog-card:nth-child(n) {grid-area:auto;grid-column:span 1;min-height:0;aspect-ratio:.75;} .catalog-mosaic__group > .catalog-card:nth-child(3n) {grid-column:1/-1;aspect-ratio:1.5;}
 .catalog-mosaic__group--themes[data-count='6'] > .catalog-card:nth-child(n) {grid-area:auto;grid-column:span 1;min-height:0;aspect-ratio:.75;}
 .catalog-mosaic__group--themes[data-count='6'] > .catalog-card:nth-child(3n) {grid-column:1/-1;aspect-ratio:1.5;}
 .catalog-mosaic__group--music > .catalog-card:first-child,.catalog-mosaic__group--examples > .catalog-card:first-child {grid-column:1/-1;aspect-ratio:1.5;}
 .catalog-mosaic__group--music > .catalog-card:nth-child(n) {grid-column:1/-1;aspect-ratio:1.7;}
 .catalog-card__title {font-size:17px;left:14px;right:12px;bottom:16px;} .catalog-card__state {left:14px;font-size:11px;}
 .catalog-card__description {left:14px;right:12px;font-size:12px;}
 .catalog-play {left:12px;bottom:12px;width:36px;height:36px;} .catalog-play img {width:16px;height:16px;} .catalog-card:has(.catalog-play) .catalog-card__title {left:58px;bottom:18px;font-size:15px;}
 .catalog-player-dialog {padding:16px;}
}
@media(prefers-reduced-motion:reduce) { .catalog-card > img {transition:none;} }
[data-example-story] { padding-top:18px; line-height:1.65; }
.music-albums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:820px}.music-album.catalog-card{background:transparent;color:#14213c;overflow:visible;border-radius:0}.music-album::after{display:none}.music-album .record-sleeve{position:relative;aspect-ratio:1;background:#edf0f7;border-radius:18px;padding:8%;box-sizing:border-box;display:grid;place-items:center}.music-album .record-sleeve>img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;border:12px solid #18202d;box-sizing:border-box;box-shadow:0 8px 24px #101a3330}.music-album .record-sleeve::after{content:'';position:absolute;width:8%;aspect-ratio:1;border:5px solid #f8faff;border-radius:50%;background:#18202d;pointer-events:none}.music-album .catalog-play{inset:0;width:100%;height:100%;border-radius:18px;background:transparent}.music-album .catalog-play img{position:absolute;right:10%;bottom:10%;width:32px;height:32px;padding:10px;background:white;border-radius:50%}.music-album .catalog-card__title{position:static!important;display:block;font-size:20px;line-height:1.25;margin:14px 0 6px;color:#14213c;text-wrap:pretty}.music-album .album-meta{font-size:13px;color:#7885a3}@media(max-width:600px){.music-albums{gap:14px}.music-album .record-sleeve{padding:6%;border-radius:14px}.music-album .record-sleeve>img{border-width:7px}.music-album .catalog-card__title{font-size:15px}.music-album .catalog-play img{width:18px;height:18px;padding:7px}.music-album .album-meta{font-size:11px}}
.music-album .catalog-play::before{content:"";position:absolute;right:5%;bottom:5%;width:50px;height:50px;border-radius:50%;background:#2452e8}
.music-album .catalog-play img{filter:brightness(0) invert(1)!important;background:transparent!important}
@media(max-width:600px){.music-album .catalog-play::before{width:36px;height:36px}}
[data-example-story] h3 { margin:0 0 10px; font-size:20px; }
[data-example-story] p { margin:0 0 14px; }
[data-example-story] p + p { color:#7885a3; font-size:13px; }
.catalog-player-dialog { max-height:90dvh; overflow-y:auto; }
[data-catalog-panel='music'] .catalog-mosaic__group--music{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:16px}
[data-catalog-panel='music'] .catalog-mosaic__group--music>.catalog-card:nth-child(n){grid-area:auto;grid-column:auto;aspect-ratio:1;min-height:0}
@media(max-width:600px){[data-catalog-panel='music'] .catalog-mosaic__group--music{gap:12px}[data-catalog-panel='music'] .catalog-mosaic__group--music .catalog-card__title{font-size:14px;left:12px;right:10px;bottom:18px}[data-catalog-panel='music'] .catalog-mosaic__group--music .catalog-card:has(.catalog-play) .catalog-card__title{left:12px;bottom:54px}[data-catalog-panel='music'] .catalog-mosaic__group--music .catalog-card:has(.catalog-card__state) .catalog-card__title{bottom:38px}[data-catalog-panel='music'] .catalog-mosaic__group--music .catalog-card__state{left:12px;font-size:10px;bottom:12px}}
.music-album .record-sleeve{aspect-ratio:450/650;padding:0;background:transparent;border-radius:0;box-shadow:none}.music-album .record-sleeve>img{width:100%;height:100%;object-fit:contain;border:0;border-radius:0;box-shadow:none}.music-album .record-sleeve::after{display:none}.music-album .catalog-play{border-radius:0}.music-album .catalog-play img{right:5%;bottom:5%;width:24px;height:24px;padding:13px;background:#2452e8;filter:none}.music-album .catalog-play img{box-sizing:content-box}.music-album .catalog-card__title{margin-top:16px;font-weight:750}.music-album .album-meta{display:block;line-height:1.6}.music-albums{gap:24px}.music-gallery-intro{color:#7885a3;line-height:1.6;margin:0 0 24px}@media(max-width:600px){.music-albums{gap:14px}.music-album .record-sleeve{padding:0;border-radius:0}.music-album .record-sleeve>img{border:0}.music-album .catalog-play img{width:18px;height:18px;padding:9px}.music-album .catalog-card__title{font-size:16px;margin:12px 0 6px}.music-album .album-meta{font-size:12px}}
/* Compact desktop music tools and six album covers; retain two mobile columns. */
@media(min-width:901px){
 [data-catalog-panel='music'] .catalog-mosaic__group--music[data-count]{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:none;gap:16px}
 [data-catalog-panel='music'] .catalog-mosaic__group--music[data-count]>.catalog-card:nth-child(n){grid-area:auto;grid-column:auto;aspect-ratio:1;min-height:0}
 [data-catalog-panel='music'] .catalog-mosaic__group--music .catalog-card__title{font-size:17px;left:14px;right:14px;bottom:16px;line-height:1.3}
 [data-catalog-panel='music'] .music-albums{grid-template-columns:repeat(6,minmax(0,1fr));max-width:none;gap:18px}
 [data-catalog-panel='music'] .music-album .catalog-card__title{font-size:17px;line-height:1.3}
 [data-catalog-panel='music'] .music-album .album-meta{font-size:13px}
}
