/*-- scss:defaults --*/
/* Import Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&family=Source+Sans+Pro:wght@300;400;600&display=swap');

/*-- scss:rules --*/

/* Custom styling for Gemini Workshop presentation */
/* Enhanced with animations and modern design */

/* Override theme fonts */
.reveal {
  font-family: 'Source Sans Pro', sans-serif;
}

.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  text-transform: none;
}

/* Title and headings with animations */
.reveal h1 {
  font-size: 2.8em;
  color: #1a73e8;
  text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
  margin-bottom: 0.5em;
}

.reveal h2 {
  font-size: 2.0em;
  color: #2C5F77;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
  border-bottom: 3px solid #34a853;
  padding-bottom: 0.3em;
}

.reveal h3 {
  font-size: 1.5em;
  color: #34a853;
  margin-top: 0.5em;
}

/* Animated center slides */
.center h1 {
  text-align: center;
  margin-top: 25%;
  animation: fadeInUp 1s ease-in-out;
  background: linear-gradient(135deg, #1a73e8 0%, #34a853 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Smooth fade-in for content */
.reveal .slides section {
  animation: fadeIn 0.6s ease-in-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Code blocks with syntax highlighting */
.reveal pre {
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
  border-radius: 8px;
  margin: 20px 0;
  background-color: #1e1e1e;
}

.reveal pre code {
  max-height: 500px;
  font-size: 0.85em;
  line-height: 1.4;
  padding: 20px;
  border-radius: 8px;
  background-color: #1e1e1e;
  color: #d4d4d4;
}

/* Inline code */
.reveal code {
  background-color: #f5f5f5;
  color: #e74c3c;
  padding: 2px 6px;
  border-radius: 3px;
  font-family: 'Monaco', 'Courier New', monospace;
}

/* Lists with custom styling */
.reveal ul, .reveal ol {
  font-size: 0.95em;
  line-height: 1.6;
}

.reveal ul li, .reveal ol li {
  margin: 0.5em 0;
  padding-left: 0.3em;
}

.reveal ul li::marker {
  color: #34a853;
  font-size: 1.2em;
}

/* Tables with hover effects */
.reveal table {
  font-size: 0.85em;
  border-collapse: collapse;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  border-radius: 8px;
  overflow: hidden;
}

.reveal table th {
  background: linear-gradient(135deg, #1a73e8 0%, #2C5F77 100%);
  color: white;
  font-weight: 600;
  padding: 12px 15px;
  text-align: left;
}

.reveal table td {
  padding: 10px 15px;
  border-bottom: 1px solid #e0e0e0;
}

.reveal table tr:hover {
  background-color: #f5f9ff;
  transition: background-color 0.3s ease;
}

/* Highlight important items */
.reveal strong {
  color: #ea4335;
  font-weight: 600;
}

.reveal em {
  color: #1a73e8;
  font-style: italic;
}

/* Task boxes with animations */
.reveal .task {
  background: linear-gradient(135deg, #f0f9ff 0%, #e3f2fd 100%);
  border-left: 5px solid #1a73e8;
  padding: 20px;
  margin: 20px 0;
  border-radius: 5px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.1);
  animation: slideInLeft 0.5s ease-in-out;
}

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Hands-on task sections */
.reveal section[class*="hands-on"] {
  background: linear-gradient(135deg, #fff9e6 0%, #fff3cd 100%);
  border: 3px solid #ffc107;
  border-radius: 10px;
  padding: 30px !important;
}

/* Smaller text class */
.smaller {
  font-size: 0.75em;
}

/* Custom emoji styling */
.reveal h2:has-text("🎯") {
  color: #ffc107;
}

/* Checkmarks and crosses with animations */
.reveal .tick::before {
  content: "✅ ";
  display: inline-block;
  animation: bounceIn 0.5s ease-in-out;
}

.reveal .cross::before {
  content: "❌ ";
  display: inline-block;
  animation: bounceIn 0.5s ease-in-out;
}

@keyframes bounceIn {
  0% {
    opacity: 0;
    transform: scale(0.3);
  }
  50% {
    opacity: 1;
    transform: scale(1.05);
  }
  70% {
    transform: scale(0.9);
  }
  100% {
    transform: scale(1);
  }
}

/* Columns layout */
.reveal .columns {
  display: flex;
  gap: 20px;
}

.reveal .column {
  flex: 1;
}

/* Fragment animations */
.reveal .fragment.fade-in-then-semi-out {
  opacity: 0;
  visibility: hidden;
}

.reveal .fragment.fade-in-then-semi-out.visible {
  opacity: 1;
  visibility: visible;
}

.reveal .fragment.fade-in-then-semi-out.current-fragment {
  opacity: 1;
  visibility: visible;
}

/* Blockquotes */
.reveal blockquote {
  background: #f9f9f9;
  border-left: 5px solid #1a73e8;
  margin: 1.5em 10px;
  padding: 1em 20px;
  font-style: italic;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* Links */
.reveal a {
  color: #1a73e8;
  text-decoration: none;
  transition: color 0.3s ease, border-bottom 0.3s ease;
  border-bottom: 2px solid transparent;
}

.reveal a:hover {
  color: #34a853;
  border-bottom: 2px solid #34a853;
}

/* Section backgrounds */
.reveal section[data-background-color="#2C5F77"] h1 {
  color: white;
  text-shadow: 2px 2px 8px rgba(0,0,0,0.5);
}

/* Footer styling */
.reveal .footer {
  font-size: 0.6em;
  color: #666;
}

/* Progress bar */
.reveal .progress {
  height: 4px;
  background: rgba(26, 115, 232, 0.3);
}

.reveal .progress span {
  background: linear-gradient(90deg, #1a73e8 0%, #34a853 100%);
}

/* Controls */
.reveal .controls {
  color: #1a73e8;
}

.reveal .controls button:hover {
  color: #34a853;
}

/* Slide number */
.reveal .slide-number {
  background-color: rgba(26, 115, 232, 0.8);
  color: white;
  padding: 5px 10px;
  border-radius: 5px;
  font-size: 0.6em;
}

/* Custom box styles */
.info-box {
  background: #e3f2fd;
  border-left: 5px solid #2196f3;
  padding: 15px;
  margin: 15px 0;
  border-radius: 5px;
}

.warning-box {
  background: #fff3cd;
  border-left: 5px solid #ffc107;
  padding: 15px;
  margin: 15px 0;
  border-radius: 5px;
}

.success-box {
  background: #e8f5e9;
  border-left: 5px solid #4caf50;
  padding: 15px;
  margin: 15px 0;
  border-radius: 5px;
}

.danger-box {
  background: #ffebee;
  border-left: 5px solid #f44336;
  padding: 15px;
  margin: 15px 0;
  border-radius: 5px;
}

/* Responsive font sizes */
@media (max-width: 768px) {
  .reveal h1 {
    font-size: 2.2em;
  }
  
  .reveal h2 {
    font-size: 1.6em;
  }
  
  .reveal {
    font-size: 28px;
  }
}

/* Print styles */
@media print {
  .reveal .slides section {
    page-break-after: always;
  }
}

/* Pulse animation for important elements */
@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}

.pulse {
  animation: pulse 2s infinite;
}

/* Highlight box for key takeaways */
.key-takeaway {
  background: linear-gradient(135deg, #fff9e6 0%, #fffbf0 100%);
  border: 2px solid #ffc107;
  border-radius: 10px;
  padding: 20px;
  margin: 20px 0;
  box-shadow: 0 4px 12px rgba(255, 193, 7, 0.3);
  font-size: 1.1em;
}

.key-takeaway::before {
  content: "💡 ";
  font-size: 1.5em;
  margin-right: 10px;
}

