/* V7 keeps the approved visual identity and gives every project one place. */
html { overflow-x: clip; }
.kinetic-ribbon > div.v7-ribbon-track { display: flex; align-items: center; width: max-content; translate: var(--ribbon-x, -120px) 0; animation: v7Ribbon 48s linear infinite; }
.v7-ribbon-run { display: flex; align-items: center; flex: none; white-space: nowrap; }
.v7-ribbon-run > b { font: inherit; font-weight: 400; }
@keyframes v7Ribbon { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.motion-off .kinetic-ribbon > div.v7-ribbon-track { animation-play-state: paused; }
.design-work .section-heading > p { max-width: 480px; }
.catalog-design-grid.v7-static-design .catalog-design-preview-label { display: none; }
.catalog-design-grid.v7-static-design .catalog-design-card { --tilt-x: 0deg; --tilt-y: 0deg; transform: perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)); transition: transform .32s ease, border-color .32s ease; }
.catalog-design-grid.v7-static-design .catalog-design-card:hover { border-color: #f284bc9c; }
.catalog-design-frame.has-strip > img { height: 74%; bottom: auto; }
.v7-art-strip { position: absolute; z-index: 2; bottom: 12px; left: 12px; right: 12px; height: 22%; display: flex; gap: 8px; padding: 6px; border: 1px solid #ffffff24; border-radius: 10px; background: #160e16d9; backdrop-filter: blur(14px); }
.catalog-design-frame .v7-art-strip img { position: static; flex: 1 1 0; width: 0; height: 100%; padding: 2px; object-fit: contain; background: #ffffff0a; border-radius: 5px; }
.v7-gallery-controls { display: none; }

@media (max-width: 760px) {
  html { scroll-behavior: auto !important; }
  body::after { content: ''; position: fixed; z-index: 120; inset: 0; background: #100b11; opacity: 0; pointer-events: none; transition: opacity .18s ease; }
  body.v7-navigating::after { opacity: .72; }
  .catalog-design-grid.v7-static-design .catalog-design-card { transform: none !important; }
  #lucrari .gallery.catalog-grid, #lucrari .gallery.catalog-grid.filtered,
  #grafica .catalog-design-grid { display: flex; columns: auto; gap: 14px; width: auto; margin-inline: calc(var(--gutter) * -1); padding: 4px var(--gutter) 14px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  #lucrari .gallery.catalog-grid::-webkit-scrollbar, #grafica .catalog-design-grid::-webkit-scrollbar { display: none; }
  #lucrari .gallery.catalog-grid { align-items: flex-start; transition: height .24s ease; }
  #lucrari .gallery.catalog-grid .project:nth-child(n),
  #lucrari .gallery.catalog-grid.filtered .project:nth-child(n),
  #grafica .catalog-design-grid .catalog-design-card:nth-child(n),
  #grafica .catalog-design-grid.focus .catalog-design-card:nth-child(n) { display: block; flex: 0 0 calc(100vw - 64px); width: calc(100vw - 64px); min-width: 0; max-width: 390px; margin: 0; padding: 0; scroll-snap-align: start; }
  #lucrari .gallery.catalog-grid .project[hidden],
  #grafica .catalog-design-grid .catalog-design-card[hidden] { display: none !important; }
  #lucrari .gallery.catalog-grid .project-image,
  #lucrari .gallery.catalog-grid .project:nth-child(n) .project-image { display: grid; place-items: center; height: auto; min-height: 0; aspect-ratio: auto; border: 1px solid #ffffff29; border-radius: 16px; overflow: hidden; background: #1c141b; }
  #lucrari .gallery.catalog-grid .project-image img,
  #lucrari .gallery.catalog-grid .project-open:hover .project-image img,
  #lucrari .gallery.catalog-grid .project:nth-child(1) .project-image img { width: 100%; height: auto; max-height: 440px; object-fit: contain; }
  #grafica .catalog-design-grid .catalog-design-frame,
  #grafica .catalog-design-grid.focus .catalog-design-frame { height: min(112vw, 430px); min-height: 300px; aspect-ratio: auto; border-radius: 16px; }
  #grafica .catalog-design-grid .catalog-design-card { border-radius: 16px; }
  .design-viewer-stage { position: relative; grid-template-columns: minmax(0, 1fr); }
  .design-viewer-stage img { grid-column: 1; grid-row: 1; }
  .design-viewer-stage .design-viewer-arrow { position: absolute; z-index: 2; top: 50%; transform: translateY(-50%); background: #120d12dc; }
  .design-viewer-stage .design-viewer-arrow[data-step="-1"] { left: 0; }
  .design-viewer-stage .design-viewer-arrow[data-step="1"] { right: 0; }
  #lucrari .catalog-reveal { display: none !important; }
  .v7-gallery-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 15px 0 30px; color: #d7c4ce; font-size: 10px; letter-spacing: .01em; }
  .v7-gallery-controls > span { line-height: 1.45; }
  .v7-gallery-actions { display: flex; align-items: center; gap: 7px; flex: none; }
  .v7-gallery-actions output { min-width: 47px; text-align: center; color: #f184b9; font-size: 10px; }
  .v7-gallery-actions button { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid #ffffff55; border-radius: 50%; font-size: 18px; line-height: 1; }
  .v7-gallery-actions button:disabled { opacity: .32; cursor: default; }
  .design-work .section-heading { margin-bottom: 20px; }
  #grafica .portfolio-modes { margin-bottom: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .kinetic-ribbon > div.v7-ribbon-track { animation: none; }
  .catalog-design-grid.v7-static-design .catalog-design-card { transform: none !important; }
  body::after { transition: none; }
}

/* Mobile rendering: keep the artwork, but avoid repainting the entire viewport while scrolling. */
@media (max-width: 760px) {
  .page-atmosphere { background: radial-gradient(ellipse at 10% 15%, #58002e 0%, transparent 57%), radial-gradient(ellipse at 92% 84%, #4a002b 0%, transparent 58%), #070707; }
  .page-atmosphere .atmosphere-ribbons { transform: none; will-change: auto; }
  .page-atmosphere .atmosphere-halo { width: 68vmax; height: 62vmax; will-change: transform; }
  .page-atmosphere .halo-rose { left: -25vmax; top: -17vmax; animation: mobileRose 11s ease-in-out infinite alternate !important; }
  .page-atmosphere .halo-blue { right: -26vmax; bottom: -20vmax; animation: mobileBlue 13s ease-in-out infinite alternate !important; }
  .page-atmosphere .ribbon-one { animation: mobileRibbonOne 12s ease-in-out infinite !important; opacity: .94; will-change: transform; }
  .page-atmosphere .ribbon-two { animation: mobileRibbonTwo 17s ease-in-out infinite !important; opacity: .7; will-change: transform; }
  .page-atmosphere .ambient-glass,
  .page-atmosphere .atmosphere-shard,
  .chapter-stage::before { animation: none !important; will-change: auto; }
  .page-atmosphere .atmosphere-shards { transform: none; will-change: auto; }
  .page-atmosphere .atmosphere-grain { display: none; }
  .page-atmosphere .atmosphere-halo { opacity: .48; }
  .page-atmosphere .atmosphere-shards { opacity: .55; }
  .header, .chapter-nav, .chapter-copy, .price-card, .contact-form,
  .filter, .gallery-navigation button, .image-corner,
  .v7-art-strip, .hero .circle-link, .film-play,
  .menu-dialog, .lightbox, .video-dialog {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  .header, .chapter-nav { background: #100b10f2; }
  .chapter-copy, .price-card, .contact-form { background-color: #120d12; }
  .hero-photo, .kinetic-ribbon > div { will-change: auto; }
  #lucrari .gallery.catalog-grid { transition: none; }
  #lucrari .gallery.catalog-grid .project-image img,
  #lucrari .gallery.catalog-grid .project-open:hover .project-image img { transform: none; }
  .chapter-stage.photo-carousel,
  .chapter-stage.design-example {
    transform: none !important;
    perspective: none;
  }
  .photo-carousel-picture::before,
  .design-example-art::before {
    background: radial-gradient(ellipse at 25% 25%, #5a3448, transparent 68%), #1c171e !important;
    filter: none;
    transform: none !important;
    transition: none;
  }
  .photo-carousel-picture::after,
  .design-example-art::after { display: none; }
  html.is-touch-scrolling .page-atmosphere *,
  html.is-touch-scrolling .kinetic-ribbon > div.v7-ribbon-track,
  html.is-touch-scrolling .blacklight-teaser::before,
  html.is-touch-scrolling .blacklight-teaser::after,
  html.is-touch-scrolling .scroll-line::after { animation-play-state: paused !important; }
}

@keyframes mobileRose {
  from { transform: translate3d(-8%, -5%, 0) scale(.92); }
  to { transform: translate3d(15%, 13%, 0) scale(1.08); }
}
@keyframes mobileBlue {
  from { transform: translate3d(9%, 11%, 0) scale(1.05); }
  to { transform: translate3d(-13%, -10%, 0) scale(.94); }
}
@keyframes mobileRibbonOne {
  0%, 100% { transform: translate3d(-16%, 7%, 0) rotate(-8deg) scale(1.03); }
  50% { transform: translate3d(14%, -7%, 0) rotate(7deg) scale(1.08); }
}
@keyframes mobileRibbonTwo {
  0%, 100% { transform: translate3d(13%, -8%, 0) rotate(8deg) scale(1.04); }
  50% { transform: translate3d(-14%, 9%, 0) rotate(-7deg) scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
  .page-atmosphere .halo-rose,
  .page-atmosphere .halo-blue,
  .page-atmosphere .ribbon-one,
  .page-atmosphere .ribbon-two { animation: none !important; }
}
.motion-off .page-atmosphere .halo-rose,
.motion-off .page-atmosphere .halo-blue,
.motion-off .page-atmosphere .ribbon-one,
.motion-off .page-atmosphere .ribbon-two { animation: none !important; }

.footer-seo-links{display:flex;gap:12px 22px;align-items:center;flex-wrap:wrap;padding:18px 0 28px;border-bottom:1px solid #ffffff24;font-size:13px}.footer-seo-links span{color:#cdbbc5}.footer-seo-links a{color:#fff;text-decoration:underline;text-decoration-color:#ed308e;text-underline-offset:4px}.footer-seo-links a:hover{color:#ff69ba}

/* Desktop wheel/trackpad scrolling should move the document, not repaint
   the full-viewport atmosphere or shift large foreground compositions. */
@media (min-width: 761px) {
  html.is-desktop-scrolling .page-atmosphere *,
  html.is-desktop-scrolling .kinetic-ribbon > div.v7-ribbon-track,
  html.is-desktop-scrolling .blacklight-teaser::before,
  html.is-desktop-scrolling .blacklight-teaser::after,
  html.is-desktop-scrolling .scroll-line::after {
    animation-play-state: paused !important;
  }
}
