:root {
      --beige: #F0EAD6;
      --rose: #BC4749;
      --rose-dk: #9b3a3c;
      --teal: #70A3A7;
      --teal-dk: #4e7d80;
      --charcoal: #403B33;
      --charcoal-lt: #5a5449;
      --tan: #D2B48C;
    }

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    html, body {
      font-family: 'Inter', sans-serif;
      background: #0d0b08;
      color: var(--charcoal);
    }

    /* â•â•â• HERO â•â•â• */
    .hero {
      padding: 72px 28px 60px;
      background: linear-gradient(160deg, #1a1208 0%, #0d0b08 50%, #0d1518 100%);
      text-align: center;
      position: relative;
      overflow: hidden;
    }

    .hero::before {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse at 30% 0%, rgba(188, 71, 73, 0.2) 0%, transparent 50%),
                  radial-gradient(ellipse at 70% 100%, rgba(112, 163, 167, 0.15) 0%, transparent 50%),
                  radial-gradient(ellipse at 50% 50%, rgba(210, 180, 140, 0.05) 0%, transparent 60%);
      pointer-events: none;
    }

    .hero-inner {
      max-width: 640px;
      margin: 0 auto;
      position: relative;
      z-index: 1;
    }

    .hero-eyebrow {
      font-size: 0.72rem;
      font-weight: 800;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--teal);
      margin-bottom: 18px;
    }

    .hero h1 {
      font-family: 'Fredoka', cursive;
      font-size: clamp(2.6rem, 6vw, 4rem);
      font-weight: 700;
      color: #f0ead6;
      line-height: 1.05;
      margin-bottom: 16px;
    }

    .hero h1 span {
      color: var(--rose);
    }

    .hero-sub {
      font-size: 1rem;
      color: rgba(240, 234, 214, 0.55);
      line-height: 1.75;
    }

    /* â•â•â• MAIN CONTENT â•â•â• */
    .quest-container {
      max-width: 1100px;
      margin: 0 auto;
      padding: 60px 28px 80px;
    }

    /* â•â•â• FILTERS â•â•â• */
    .filter-bar {
      display: flex;
      gap: 12px;
      margin-bottom: 40px;
      flex-wrap: wrap;
    }

    .filter-btn {
      background: white;
      border: 2px solid #e0e0e0;
      border-radius: 12px;
      padding: 10px 18px;
      font-weight: 600;
      cursor: pointer;
      transition: all 0.2s ease;
      color: var(--charcoal);
      font-size: 0.9rem;
    }

    .filter-btn:hover {
      border-color: var(--rose);
      color: var(--rose);
    }

    .filter-btn.active {
      background: var(--rose);
      color: white;
      border-color: var(--rose);
    }

    /* â•â•â• QUEST SECTIONS â•â•â• */
    .quest-section {
      margin-bottom: 60px;
    }

    .section-title {
      font-size: 1.4rem;
      font-weight: 700;
      color: var(--charcoal);
      margin-bottom: 24px;
      display: flex;
      align-items: center;
      gap: 12px;
    }

    .quest-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
      gap: 24px;
    }

    /* â•â•â• QUEST CARD â•â•â• */
    .quest-card {
      background: white;
      border-radius: 20px;
      overflow: hidden;
      box-shadow: 0 8px 24px rgba(64, 59, 51, 0.12);
      transition: all 0.25s ease;
      display: flex;
      flex-direction: column;
      position: relative;
    }

    .quest-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 16px 40px rgba(64, 59, 51, 0.2);
    }

    .quest-card.locked {
      opacity: 0.65;
      pointer-events: none;
    }

    .quest-header {
      padding: 24px;
      background: linear-gradient(135deg, #f5f5f5 0%, #efefef 100%);
      border-bottom: 2px solid #e0e0e0;
      display: flex;
      gap: 16px;
      align-items: flex-start;
    }

    .quest-icon {
      font-size: 2.4rem;
      flex-shrink: 0;
    }

    .quest-title-block {
      flex: 1;
    }

    .quest-title {
      font-size: 1.2rem;
      font-weight: 700;
      color: var(--charcoal);
      margin-bottom: 4px;
    }

    .quest-desc {
      font-size: 0.9rem;
      color: #666;
      line-height: 1.5;
    }

    .quest-difficulty {
      display: inline-block;
      padding: 6px 12px;
      border-radius: 8px;
      font-size: 0.75rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      margin-top: 8px;
    }

    .difficulty-beginner {
      background: rgba(107, 203, 119, 0.15);
      color: #2d7a3a;
    }

    .difficulty-intermediate {
      background: rgba(255, 193, 7, 0.15);
      color: #b8860b;
    }

    .difficulty-advanced {
      background: rgba(244, 67, 54, 0.15);
      color: #c62828;
    }

    /* â•â•â• QUEST STEPS â•â•â• */
    .quest-steps {
      padding: 24px;
      flex: 1;
    }

    .quest-step {
      display: flex;
      gap: 12px;
      margin-bottom: 16px;
      padding: 12px;
      background: #fafafa;
      border-radius: 12px;
      align-items: flex-start;
    }

    .quest-step:last-child {
      margin-bottom: 0;
    }

    .quest-step input[type="checkbox"] {
      width: 24px;
      height: 24px;
      margin-top: 2px;
      flex-shrink: 0;
      cursor: pointer;
    }

    .step-content {
      flex: 1;
    }

    .step-label {
      font-size: 0.95rem;
      color: var(--charcoal);
      font-weight: 500;
      margin-bottom: 8px;
    }

    .progress-bar {
      width: 100%;
      height: 6px;
      background: #e0e0e0;
      border-radius: 4px;
      overflow: hidden;
      margin-top: 6px;
    }

    .progress-fill {
      height: 100%;
      background: linear-gradient(90deg, #70A3A7 0%, #BCB4A7 100%);
      transition: width 0.3s ease;
    }

    .progress-label {
      font-size: 0.75rem;
      color: #999;
      margin-top: 4px;
      display: block;
    }

    /* â•â•â• QUEST REWARDS â•â•â• */
    .quest-rewards {
      padding: 16px 24px;
      background: #fffbf5;
      border-top: 1px solid #f0e6d2;
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      gap: 12px;
    }

    .reward-item {
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: 0.9rem;
      font-weight: 600;
    }

    .reward-icon {
      font-size: 1.2rem;
    }

    .reward-xp {
      background: linear-gradient(135deg, #FFD93D 0%, #FF6B6B 100%);
      color: white;
      padding: 6px 12px;
      border-radius: 8px;
      font-size: 0.85rem;
      font-weight: 700;
    }

    /* â•â•â• ACTION BUTTONS â•â•â• */
    .quest-actions {
      padding: 20px 24px;
      display: flex;
      gap: 12px;
      border-top: 1px solid #e0e0e0;
    }

    .quest-btn {
      flex: 1;
      padding: 12px 20px;
      border: none;
      border-radius: 12px;
      font-weight: 700;
      cursor: pointer;
      transition: all 0.2s ease;
      font-size: 0.95rem;
    }

    .btn-primary {
      background: linear-gradient(135deg, var(--rose) 0%, var(--rose-dk) 100%);
      color: white;
    }

    .btn-primary:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 16px rgba(188, 71, 73, 0.3);
    }

    .btn-secondary {
      background: white;
      color: var(--charcoal);
      border: 2px solid var(--charcoal);
    }

    .btn-secondary:hover {
      background: #f5f5f5;
    }

    .btn-locked {
      background: #d0d0d0;
      color: #999;
      cursor: not-allowed;
    }

    .btn-completed {
      background: #6BCB77;
      color: white;
    }

    /* â•â•â• EMPTY STATE â•â•â• */
    .empty-state {
      text-align: center;
      padding: 60px 28px;
      color: #999;
    }

    .empty-state-icon {
      font-size: 3rem;
      margin-bottom: 16px;
    }

    .empty-state-text {
      font-size: 1.1rem;
      margin-bottom: 8px;
    }

    @media (max-width: 640px) {
      .quest-grid {
        grid-template-columns: 1fr;
      }

      .hero {
        padding: 48px 20px 40px;
      }

      .quest-container {
        padding: 40px 20px 60px;
      }

      .quest-header {
        flex-direction: column;
      }

      .quest-actions {
        flex-direction: column;
      }

      .quest-btn {
        width: 100%;
      }
    }
@keyframes questPulse {
      0% { transform: scale(1); }
      50% { transform: scale(1.05); }
      100% { transform: scale(1); }
    }

    .quest-complete-modal {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.8);
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 9999;
      animation: fadeIn 0.3s ease;
    }

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

    .quest-complete-content {
      background: linear-gradient(135deg, #fff8ee 0%, #fff0f8 100%);
      border-radius: 28px;
      padding: 40px;
      text-align: center;
      max-width: 500px;
      box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
      animation: slideUp 0.4s ease;
    }

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

    .quest-complete-emoji {
      font-size: 4rem;
      margin-bottom: 16px;
      animation: bounce 0.6s ease;
    }

    @keyframes bounce {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-20px); }
    }

    .quest-complete-title {
      font-family: 'Fredoka', cursive;
      font-size: 2rem;
      font-weight: 700;
      color: var(--rose);
      margin-bottom: 12px;
    }

    .quest-complete-desc {
      font-size: 1rem;
      color: var(--charcoal);
      margin-bottom: 24px;
    }

    .quest-rewards-list {
      background: rgba(255, 255, 255, 0.6);
      border-radius: 16px;
      padding: 20px;
      margin-bottom: 24px;
      text-align: left;
    }

    .reward-item-display {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 12px;
      margin-bottom: 8px;
      background: white;
      border-radius: 10px;
      last-child: margin-bottom: 0;
    }

    .reward-icon {
      font-size: 1.8rem;
      flex-shrink: 0;
    }

    .reward-text {
      flex: 1;
      text-align: left;
    }

    .reward-name {
      font-weight: 700;
      color: var(--charcoal);
      font-size: 0.95rem;
    }

    .reward-desc {
      font-size: 0.8rem;
      color: var(--charcoal-lt);
      margin-top: 2px;
    }

    .quest-complete-btn {
      background: linear-gradient(135deg, var(--rose) 0%, var(--rose-dk) 100%);
      color: white;
      border: none;
      padding: 14px 32px;
      border-radius: 12px;
      font-weight: 700;
      font-size: 1rem;
      cursor: pointer;
      transition: transform 0.2s ease;
      width: 100%;
    }

    .quest-complete-btn:hover {
      transform: translateY(-2px);
    }

    .cosmetic-badge {
      display: inline-block;
      font-size: 0.7rem;
      font-weight: 700;
      padding: 4px 10px;
      border-radius: 6px;
      background: rgba(255, 217, 61, 0.2);
      color: #9b7a00;
      margin-top: 4px;
    }