/* ============================= */
/* 📐 BismillahCSS - Grid System */
/* ============================= */

.bismillah-grid {
display: grid;
    gap: 10px;
}
/* 🌐 Columns */
  .bismillah-grid-cols-2 {
grid-template-columns: repeat(2, 1fr);
}
/* 📏 Rows */
  .bismillah-grid-rows-2 {
grid-template-rows: repeat(2, 1fr);
}
/* 🔄 Justify */
  .bismillah-justify-start {
justify-content: start;
}
/* 🧭 Alignment */
  .bismillah-align-start {
align-items: start;
}
.bismillah-align-center {
align-items: center;
}
.bismillah-align-end {
align-items: end;
}



/* ============================= */
/* 🌟 BismillahCSS - Advanced Utilities */
/* ============================= */

/* ===== Advanced Layout Utilities ===== */
.bismillah-grid-masonry {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  grid-auto-rows: 10px;
  grid-auto-flow: dense;
}

.bismillah-grid-mosaic {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(4, 1fr);
  grid-template-areas: 
    "a a b c"
    "a a d d"
    "e f g g"
    "h h h h";
}

.bismillah-grid-area-a { grid-area: a; }
.bismillah-grid-area-b { grid-area: b; }
.bismillah-grid-area-c { grid-area: c; }
.bismillah-grid-area-d { grid-area: d; }
.bismillah-grid-area-e { grid-area: e; }
.bismillah-grid-area-f { grid-area: f; }
.bismillah-grid-area-g { grid-area: g; }
.bismillah-grid-area-h { grid-area: h; }

.bismillah-aspect-16-9 { aspect-ratio: 16/9; }
.bismillah-aspect-4-3 { aspect-ratio: 4/3; }
.bismillah-aspect-1-1 { aspect-ratio: 1/1; }
.bismillah-aspect-2-3 { aspect-ratio: 2/3; }
.bismillah-aspect-9-16 { aspect-ratio: 9/16; }

/* ===== Advanced Typography ===== */
.bismillah-text-balance {
  text-wrap: balance;
}

.bismillah-text-pretty {
  text-wrap: pretty;
}

.bismillah-text-stroke-sm {
  -webkit-text-stroke: 1px currentColor;
}

.bismillah-text-stroke-md {
  -webkit-text-stroke: 2px currentColor;
}

.bismillah-text-stroke-lg {
  -webkit-text-stroke: 3px currentColor;
}

.bismillah-text-clamp-1 {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.bismillah-text-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.bismillah-text-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ===== Advanced Animations ===== */
@keyframes bismillah-float-wave {
  0%, 100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-10px) rotate(-2deg); }
  75% { transform: translateY(10px) rotate(2deg); }
}

.bismillah-animate-float-wave {
  animation: bismillah-float-wave 5s ease-in-out infinite;
}

@keyframes bismillah-typing {
  from { width: 0; }
  to { width: 100%; }
}

.bismillah-animate-typing {
  overflow: hidden;
  white-space: nowrap;
  border-right: 2px solid;
  width: 0;
  animation: bismillah-typing 3.5s steps(40, end) forwards,
             bismillah-blink-caret 0.75s step-end infinite;
}

@keyframes bismillah-blink-caret {
  from, to { border-color: transparent; }
  50% { border-color: currentColor; }
}

@keyframes bismillah-perspective-flip {
  0% { transform: perspective(800px) rotateY(0); }
  100% { transform: perspective(800px) rotateY(360deg); }
}

.bismillah-animate-perspective-flip {
  animation: bismillah-perspective-flip 2s ease-in-out;
  transform-style: preserve-3d;
}

/* ===== Advanced Filters ===== */
.bismillah-filter-duotone-blue-red {
  filter: brightness(0.5) sepia(1) hue-rotate(-30deg) saturate(5);
}

.bismillah-filter-duotone-purple-yellow {
  filter: brightness(0.5) sepia(1) hue-rotate(200deg) saturate(5);
}

.bismillah-filter-vintage {
  filter: sepia(0.3) contrast(1.1) brightness(1.1) saturate(1.5);
}

.bismillah-filter-cyberpunk {
  filter: hue-rotate(90deg) saturate(1.5) brightness(1.2);
}

.bismillah-filter-night-vision {
  filter: brightness(1.2) sepia(0.5) hue-rotate(90deg) saturate(2);
}

/* ===== Advanced Backgrounds ===== */
.bismillah-bg-noise {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
  background-repeat: repeat;
}

.bismillah-bg-circuit {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%239C92AC' fill-opacity='0.1'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

.bismillah-bg-topography {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 800 800'%3E%3Cg fill='none' stroke='%23404' stroke-width='1'%3E%3Cpath d='M769 229L1037 260.9M927 880L731 737 520 660 309 538 40 599 295 764 126.5 879.5 40 599-197 493 102 382-31 229 126.5 79.5-69-63'/%3E%3Cpath d='M-31 229L237 261 390 382 603 493 308.5 537.5 101.5 381.5M370 905L295 764'/%3E%3Cpath d='M520 660L578 842 731 737 840 599 603 493 520 660 295 764 309 538 390 382 539 269 769 229 577.5 41.5 370 105 295 -36 126.5 79.5 237 261 102 382 40 599 -69 737 127 880'/%3E%3Cpath d='M520-140L578.5 42.5 731-63M603 493L539 269 237 261 370 105M902 382L539 269M390 382L102 382'/%3E%3Cpath d='M-222 42L126.5 79.5 370 105 539 269 577.5 41.5 927 80 769 229 902 382 603 493 731 737M295-36L577.5 41.5M578 842L295 764M40-201L127 80M102 382L-261 269'/%3E%3C/g%3E%3Cg fill='%23505'%3E%3Ccircle cx='769' cy='229' r='5'/%3E%3Ccircle cx='539' cy='269' r='5'/%3E%3Ccircle cx='603' cy='493' r='5'/%3E%3Ccircle cx='731' cy='737' r='5'/%3E%3Ccircle cx='520' cy='660' r='5'/%3E%3Ccircle cx='309' cy='538' r='5'/%3E%3Ccircle cx='295' cy='764' r='5'/%3E%3Ccircle cx='40' cy='599' r='5'/%3E%3Ccircle cx='102' cy='382' r='5'/%3E%3Ccircle cx='127' cy='80' r='5'/%3E%3Ccircle cx='370' cy='105' r='5'/%3E%3Ccircle cx='578' cy='42' r='5'/%3E%3Ccircle cx='237' cy='261' r='5'/%3E%3Ccircle cx='390' cy='382' r='5'/%3E%3C/g%3E%3C/svg%3E");
}

/* ===== Advanced Interaction Effects ===== */
.bismillah-hover-tilt {
  transition: transform 0.3s ease;
  transform-style: preserve-3d;
}

.bismillah-hover-tilt:hover {
  transform: perspective(1000px) rotateX(5deg) rotateY(10deg);
}

.bismillah-hover-float-shadow {
  position: relative;
  transition: transform 0.3s ease;
}

.bismillah-hover-float-shadow::after {
  content: '';
  position: absolute;
  bottom: -20px;
  left: 5%;
  width: 90%;
  height: 20px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0) 80%);
  opacity: 0;
  transition: all 0.3s ease;
}

.bismillah-hover-float-shadow:hover {
  transform: translateY(-10px);
}

.bismillah-hover-float-shadow:hover::after {
  opacity: 1;
  bottom: -10px;
}

/* ===== Advanced Scroll Effects ===== */
.bismillah-scroll-snap-x {
  scroll-snap-type: x mandatory;
  overflow-x: auto;
  display: flex;
}

.bismillah-scroll-snap-y {
  scroll-snap-type: y mandatory;
  overflow-y: auto;
  height: 100%;
}

.bismillah-scroll-snap-start {
  scroll-snap-align: start;
}

.bismillah-scroll-snap-center {
  scroll-snap-align: center;
}

.bismillah-scroll-snap-end {
  scroll-snap-align: end;
}

.bismillah-scroll-margin-top-1 { scroll-margin-top: 4px; }
.bismillah-scroll-margin-top-2 { scroll-margin-top: 8px; }
.bismillah-scroll-margin-top-3 { scroll-margin-top: 12px; }
.bismillah-scroll-margin-top-4 { scroll-margin-top: 16px; }
.bismillah-scroll-margin-top-5 { scroll-margin-top: 20px; }

/* ===== Advanced Blend Modes ===== */
.bismillah-blend-multiply { mix-blend-mode: multiply; }
.bismillah-blend-screen { mix-blend-mode: screen; }
.bismillah-blend-overlay { mix-blend-mode: overlay; }
.bismillah-blend-darken { mix-blend-mode: darken; }
.bismillah-blend-lighten { mix-blend-mode: lighten; }
.bismillah-blend-color-dodge { mix-blend-mode: color-dodge; }
.bismillah-blend-color-burn { mix-blend-mode: color-burn; }
.bismillah-blend-hard-light { mix-blend-mode: hard-light; }
.bismillah-blend-soft-light { mix-blend-mode: soft-light; }
.bismillah-blend-difference { mix-blend-mode: difference; }
.bismillah-blend-exclusion { mix-blend-mode: exclusion; }
.bismillah-blend-hue { mix-blend-mode: hue; }
.bismillah-blend-saturation { mix-blend-mode: saturation; }
.bismillah-blend-color { mix-blend-mode: color; }
.bismillah-blend-luminosity { mix-blend-mode: luminosity; }

/* ===== Advanced Backdrop Filters ===== */
.bismillah-backdrop-blur-xs { backdrop-filter: blur(2px); }
.bismillah-backdrop-blur-sm { backdrop-filter: blur(4px); }
.bismillah-backdrop-blur-md { backdrop-filter: blur(8px); }
.bismillah-backdrop-blur-lg { backdrop-filter: blur(12px); }
.bismillah-backdrop-blur-xl { backdrop-filter: blur(16px); }
.bismillah-backdrop-blur-2xl { backdrop-filter: blur(24px); }

.bismillah-backdrop-brightness-50 { backdrop-filter: brightness(0.5); }
.bismillah-backdrop-brightness-75 { backdrop-filter: brightness(0.75); }
.bismillah-backdrop-brightness-125 { backdrop-filter: brightness(1.25); }
.bismillah-backdrop-brightness-150 { backdrop-filter: brightness(1.5); }

.bismillah-backdrop-contrast-50 { backdrop-filter: contrast(0.5); }
.bismillah-backdrop-contrast-75 { backdrop-filter: contrast(0.75); }
.bismillah-backdrop-contrast-125 { backdrop-filter: contrast(1.25); }
.bismillah-backdrop-contrast-150 { backdrop-filter: contrast(1.5); }

.bismillah-backdrop-grayscale { backdrop-filter: grayscale(1); }
.bismillah-backdrop-sepia { backdrop-filter: sepia(1); }
.bismillah-backdrop-invert { backdrop-filter: invert(1); }

/* ===== Advanced Shapes ===== */
.bismillah-shape-blob-1 {
  border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
}

.bismillah-shape-blob-2 {
  border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
}

.bismillah-shape-blob-3 {
  border-radius: 40% 60% 60% 40% / 70% 30% 70% 30%;
}

.bismillah-shape-diamond {
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}

.bismillah-shape-hexagon {
  clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
}

.bismillah-shape-star {
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}

.bismillah-shape-message {
  clip-path: polygon(0% 0%, 100% 0%, 100% 75%, 75% 75%, 75% 100%, 50% 75%, 0% 75%);
}

/* ===== Advanced Gradients ===== */
.bismillah-gradient-conic {
  background: conic-gradient(from 0deg at 50% 50%, #ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ff00ff, #ff0000);
}

.bismillah-gradient-mesh {
  background: radial-gradient(circle at 0% 0%, #ff0000 0%, transparent 50%),
              radial-gradient(circle at 100% 0%, #00ff00 0%, transparent 50%),
              radial-gradient(circle at 100% 100%, #0000ff 0%, transparent 50%),
              radial-gradient(circle at 0% 100%, #ffff00 0%, transparent 50%);
}

.bismillah-gradient-rainbow-text {
  background: linear-gradient(to right, #ff0000, #ff7f00, #ffff00, #00ff00, #0000ff, #4b0082, #9400d3);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.bismillah-gradient-aurora {
  background: linear-gradient(135deg, 
    rgba(76, 209, 55, 0.7),
    rgba(53, 235, 144, 0.7), 
    rgba(40, 175, 176, 0.7), 
    rgba(72, 126, 176, 0.7), 
    rgba(146, 82, 162, 0.7));
  background-size: 400% 400%;
  animation: bismillah-aurora 15s ease infinite;
}

@keyframes bismillah-aurora {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* ===== Advanced Scrollbar Styling ===== */
.bismillah-scrollbar-thin {
  scrollbar-width: thin;
}

.bismillah-scrollbar-none {
  scrollbar-width: none;
}

.bismillah-scrollbar-none::-webkit-scrollbar {
  display: none;
}

.bismillah-scrollbar-fancy::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.bismillah-scrollbar-fancy::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}

.bismillah-scrollbar-fancy::-webkit-scrollbar-thumb {
  background: linear-gradient(to bottom, #ff0080, #7928ca);
  border-radius: 4px;
}

.bismillah-scrollbar-fancy::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(to bottom, #7928ca, #ff0080);
}

/* ===== Advanced Print Styles ===== */
@media print {
  .bismillah-print-hide {
    display: none !important;
  }
  
  .bismillah-print-show {
    display: block !important;
  }
  
  .bismillah-print-break-before {
    page-break-before: always;
  }
  
  .bismillah-print-break-after {
    page-break-after: always;
  }
  
  .bismillah-print-break-inside-avoid {
    page-break-inside: avoid;
  }
}

/* ===== Advanced Container Queries ===== */
@container (min-width: 400px) {
  .bismillah-container-sm {
    font-size: 1rem;
  }
}

@container (min-width: 600px) {
  .bismillah-container-md {
    font-size: 1.25rem;
  }
}

@container (min-width: 800px) {
  .bismillah-container-lg {
    font-size: 1.5rem;
  }
}

/* ===== Advanced Accessibility ===== */
.bismillah-focus-visible:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.bismillah-reduced-motion {
  transition: none !important;
  animation: none !important;
}

@media (prefers-reduced-motion) {
  .bismillah-respect-motion-preference {
    transition: none !important;
    animation: none !important;
  }
}

.bismillah-high-contrast {
  border: 3px solid currentColor;
  text-shadow: none;
}

@media (prefers-contrast: high) {
  .bismillah-respect-contrast-preference {
    border: 3px solid currentColor;
    text-shadow: none;
  }
}