/* Dynamic catalogue preserves the current premium cards and responsive carousel. */
#sliderTrack[data-portfolio-source] { min-height:530px; touch-action:pan-y; align-items:stretch; }
#sliderTrack[data-portfolio-source] > .projects-slider__slide { display:flex; }
#sliderTrack[data-portfolio-source] .project-card { width:100%; min-width:0; }
#sliderTrack[data-portfolio-source] .project-card__title { overflow-wrap:anywhere; }
.portfolio-preview { position:relative; aspect-ratio:8/5; width:100%; }
.portfolio-preview img { position:relative; z-index:1; aspect-ratio:8/5; object-position:top; }
.portfolio-preview__fallback { position:absolute; inset:0; display:grid; place-items:center; padding:24px; color:#9dbbf0; background:radial-gradient(circle at 50% 35%,#173559,#0a1829); font:500 22px/1.4 'Manrope','Inter',sans-serif; text-align:center; overflow-wrap:anywhere; }
.portfolio-state { width:100%; margin:auto; padding:70px 24px; color:#9fadc3; font-size:15px; text-align:center; }
.portfolio-feedback { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.portfolio-feedback p { color:#a0aec4; font-size:13px; line-height:1.8; margin-top:16px; }
.portfolio-feedback p:empty { display:none; }
#portfolioRetry { margin-top:16px; padding:9px 14px; border:1px solid #5981bc; border-radius:8px; background:transparent; color:#c6d9fc; font:500 12px/1.5 'Inter',sans-serif; cursor:pointer; }
.portfolio-all-link { display:inline-flex; align-items:center; gap:22px; color:#c6d9fc; font-size:14px; padding-bottom:7px; margin-top:25px; text-decoration:none; border-bottom:1px solid #4677bf; }
.portfolio-all-link:hover { color:#fff; }
#projects .projects-slider__controls[hidden],#portfolioRetry[hidden] { display:none; }
#projects .projects-slider { overflow:visible; }
#projects .projects-slider__viewport { overflow:hidden; border-radius:22px; }
#projects .projects-slider__controls { min-width:0; padding:6px; }
#projects .slider-btn {
  flex:0 0 48px; width:48px; height:48px; min-width:48px; padding:0;
  transform:none; scale:1;
  transition:background-color .2s,border-color .2s,color .2s;
}
#projects .slider-btn:hover,#projects .slider-btn:active,#projects .slider-btn:focus-visible { transform:none; scale:1; }
#projects .slider-btn i { display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; font-size:12px; line-height:1; transform:none; }
#sliderDots { position:relative; flex:1; max-width:300px; min-width:0; justify-content:flex-start; overflow-x:auto; gap:4px; scrollbar-width:none; }
#sliderDots::-webkit-scrollbar { display:none; }
#sliderDots button { position:relative; flex:0 0 22px; width:22px; height:32px; background:none; border:0; padding:0; transform:none; }
#sliderDots button::before { content:''; position:absolute; width:6px; height:6px; top:13px; left:8px; background:#5a6d88; border-radius:20px; transition:background .3s,width .3s,left .3s; }
#sliderDots button.active::before { width:16px; left:3px; background:#7eacff; }
@media(max-width:767px) {
  #sliderTrack[data-portfolio-source] { min-height:480px; }
  #projects .projects-slider__controls { gap:12px; }
  #projects .projects-slider__viewport { border-radius:18px; }
  #sliderDots { max-width:calc(100% - 120px); }
  .portfolio-feedback p { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { #sliderDots button::before { transition:none; } }
