      :root {
        /* ==============================================
           SUMMARYWORLD - Organic Luxury Design System
           SKILL: Typography carries hierarchy; spacing intentional (never default).
           Aesthetic: Warm, natural, premium reading experience
           ============================================== */
        
        /* Primary - Sage green */
        --sage-green: #87a878;
        --sage-green-hover: #6b8f5b;
        --sage-green-light: #b5cbb7;
        
        /* Canvas - Warm Paper Tones */
        --cream: #f8f6f1;
        --warm-white: #fffffe;
        --stone: #706b64;
        --charcoal: #1f1d1a;
        --mist: #e9e5de;
        --blush: #f2ede5;
        
        /* Type scale - modular (≈1.25), clear hierarchy */
        --text-xs: 0.75rem;
        --text-sm: 0.8125rem;
        --text-base: 1rem;
        --text-md: 1.0625rem;
        --text-lg: 1.125rem;
        --text-xl: 1.25rem;
        --text-2xl: 1.5rem;
        --text-3xl: 1.75rem;
        --text-4xl: 2rem;
        --text-display: 2.75rem;
        
        /* Line heights - intentional readability */
        --leading-tight: 1.25;
        --leading-snug: 1.375;
        --leading-normal: 1.5;
        --leading-relaxed: 1.625;
        --leading-loose: 1.75;
        
        /* Spacing scale - 8px base, never arbitrary */
        --space-1: 0.25rem;   /* 4px */
        --space-2: 0.5rem;    /* 8px */
        --space-3: 0.75rem;   /* 12px */
        --space-4: 1rem;      /* 16px */
        --space-5: 1.25rem;   /* 20px */
        --space-6: 1.5rem;   /* 24px */
        --space-8: 2rem;      /* 32px */
        --space-10: 2.5rem;   /* 40px */
        --space-12: 3rem;     /* 48px */
        --space-14: 3.5rem;   /* 56px */
        --space-16: 4rem;     /* 64px */
        
        /* Mobile UX - SKILL: Responsiveness, Accessibility (WCAG 2.2 touch target) */
        --touch-target-min: 2.75rem;  /* 44px minimum for tap/click */
        
        /* Shadows - soft, warm depth */
        --shadow-float: 
          0 1px 1px rgba(31, 29, 26, 0.02),
          0 2px 4px rgba(31, 29, 26, 0.02),
          0 4px 8px rgba(31, 29, 26, 0.03),
          0 8px 16px rgba(31, 29, 26, 0.04),
          0 16px 32px rgba(31, 29, 26, 0.04);
        --shadow-elevated: 
          0 2px 4px rgba(31, 29, 26, 0.03),
          0 8px 24px rgba(31, 29, 26, 0.08),
          0 24px 48px rgba(31, 29, 26, 0.06);
        --shadow-glow: 0 0 0 3px rgba(135, 168, 120, 0.12);
        --soft-shadow: rgba(112, 107, 100, 0.08);

        --font-primary: "Lexend", -apple-system, BlinkMacSystemFont, sans-serif;
      }

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

      html {
        scroll-behavior: smooth;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        -webkit-tap-highlight-color: rgba(135, 168, 120, 0.15);
      }

      body {
        font-family: var(--font-primary);
        background: var(--cream);
        color: var(--charcoal);
        min-height: 100vh;
        line-height: var(--leading-relaxed);
        font-size: var(--text-base);
        letter-spacing: 0.01em;
      }

      /* Focus - Distinctive green ring */
      :focus-visible {
        outline: none;
        box-shadow: var(--shadow-glow), 0 0 0 1px var(--sage-green);
      }

      :focus:not(:focus-visible) {
        outline: none;
      }

      /* Atmospheric Canvas - Paper texture feel */
      .background-texture {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: 
          /* Warm light from top-left corner */
          radial-gradient(
            ellipse 80% 60% at 10% 10%,
            rgba(135, 168, 120, 0.03) 0%,
            transparent 60%
          ),
          /* Soft warmth in bottom-right */
          radial-gradient(
            ellipse 100% 80% at 90% 90%,
            rgba(242, 237, 229, 0.7) 0%,
            transparent 50%
          ),
          /* Subtle paper grain effect */
          url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.015'/%3E%3C/svg%3E");
        pointer-events: none;
        z-index: 0;
      }

      .page-wrapper {
        position: relative;
        z-index: 1;
        display: flex;
        min-height: 100vh;
      }

      /* Single content column: hero, breadcrumbs, main share same width (SKILL: one grid) */
      .container {
        flex: 1;
        max-width: 720px;
        margin: 0 auto;
        padding: var(--space-14) var(--space-6);
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        transition: none;
        width: 100%;
      }

      /* Search page - centered, same width as homepage for consistency */
      body.search-page .container {
        max-width: 900px;
      }

      /* Summary page - two-column layout wrapper */
      body.summary-page .container {
        max-width: 1200px;
        padding: var(--space-14) var(--space-8);
      }

      /* Main content wrapper for summary pages */
      .summary-layout {
        display: grid;
        grid-template-columns: 1fr 320px;
        gap: var(--space-12);
        align-items: start;
      }

      .summary-main-content {
        min-width: 0;
      }

      /* Sidebar for related videos */
      .summary-sidebar {
        position: sticky;
        top: 32px;
        max-height: calc(100vh - 64px);
        overflow-y: auto;
      }

      .summary-sidebar .related-section {
        margin-top: 0;
        display: block;
      }

      .summary-sidebar .related-videos-grid {
        display: flex;
        flex-direction: column;
        gap: 16px;
        max-width: none;
      }

      .summary-sidebar .related-video-card {
        display: flex;
        flex-direction: row;
        gap: 12px;
        padding: 12px;
      }

      .summary-sidebar .related-thumbnail-wrapper {
        width: 140px;
        height: 79px;
        flex-shrink: 0;
        padding-top: 0;
        border-radius: 10px;
      }

      .summary-sidebar .related-video-info {
        flex: 1;
        min-width: 0;
      }

      .summary-sidebar .related-video-title {
        font-size: 0.85rem;
        line-height: 1.35;
        margin-bottom: 6px;
        display: -webkit-box;
        line-clamp: 2;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
      }

      .summary-sidebar .related-video-meta {
        font-size: 0.7rem;
      }

      /* Responsive - stack sidebar below on smaller screens */
      @media (max-width: 1024px) {
        body.summary-page .summary-layout {
          grid-template-columns: 1fr;
          gap: 32px;
        }

        .summary-sidebar {
          position: static;
          max-height: none;
        }

        .summary-sidebar .related-videos-grid {
          display: grid;
          grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        }

        .summary-sidebar .related-video-card {
          flex-direction: column;
        }

        .summary-sidebar .related-thumbnail-wrapper {
          width: 100%;
          height: auto;
          padding-top: 56.25%;
        }
      }

      @media (max-width: 640px) {
        body.summary-page .container {
          padding: var(--space-10) var(--space-5);
        }

        .summary-sidebar .related-videos-grid {
          grid-template-columns: 1fr;
        }
      }

      /* Related Videos Section */
      .related-section {
        margin-top: 40px;
        display: none;
        animation: fadeIn 0.5s ease-out;
      }

      .related-section.visible {
        display: block;
      }

      /* Related section in sidebar is handled by conditional rendering */

      .related-header {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-bottom: 16px;
      }

      .related-title {
        font-family: var(--font-primary);
        font-size: 0.75rem;
        font-weight: 500;
        color: var(--stone);
        letter-spacing: 0.04em;
        text-transform: uppercase;
        margin: 0;
      }

      .related-divider {
        flex: 1;
        height: 1px;
        background: var(--mist);
      }

      .related-videos-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;
        max-width: 600px;
      }

      .related-video-card {
        background: var(--warm-white);
        border-radius: 16px;
        overflow: hidden;
        cursor: pointer;
        transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
        border: 1px solid rgba(31, 29, 26, 0.05);
        box-shadow: 0 2px 8px rgba(31, 29, 26, 0.04);
      }

      .related-video-card:hover {
        box-shadow: 
          0 4px 12px rgba(31, 29, 26, 0.06),
          0 12px 24px rgba(135, 168, 120, 0.1);
        transform: translateY(-6px) scale(1.02);
        border-color: rgba(135, 168, 120, 0.2);
      }

      .related-video-card.loading {
        opacity: 0.5;
        pointer-events: none;
      }

      .related-thumbnail-wrapper {
        position: relative;
        width: 100%;
        padding-top: 56.25%; /* 16:9 aspect ratio */
        background: var(--mist);
        overflow: hidden;
        border-radius: 14px 14px 0 0;
      }

      .related-thumbnail {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.35s ease;
      }

      .related-video-card:hover .related-thumbnail {
        transform: scale(1.05);
      }

      .related-video-duration {
        position: absolute;
        bottom: 6px;
        right: 6px;
        background: rgba(0, 0, 0, 0.7);
        color: white;
        font-size: 0.6rem;
        font-weight: 500;
        padding: 2px 5px;
        border-radius: 5px;
      }

      .related-video-info {
        padding: 10px 11px 12px;
      }

      .related-video-title {
        font-size: 0.75rem;
        font-weight: 500;
        color: var(--charcoal);
        line-height: 1.35;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        margin-bottom: 4px;
      }

      .related-video-meta {
        font-size: 0.65rem;
        color: var(--stone);
        display: -webkit-box;
        -webkit-line-clamp: 1;
        line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
      }

      .related-loading,
      .related-empty {
        text-align: center;
        padding: 30px 16px;
        color: var(--stone);
        font-size: 0.8rem;
      }

      /* Responsive grid */
      @media (max-width: 768px) {
        .related-videos-grid {
          grid-template-columns: repeat(2, 1fr);
          gap: 12px;
          max-width: 100%;
        }
      }

      @media (max-width: 480px) {
        .related-videos-grid {
          grid-template-columns: 1fr;
          gap: 10px;
        }

        .related-video-card {
          display: flex;
          flex-direction: row;
          border-radius: 12px;
        }

        .related-thumbnail-wrapper {
          width: 110px;
          min-width: 110px;
          padding-top: 0;
          height: 65px;
          border-radius: 12px 0 0 12px;
        }

        .related-video-info {
          padding: 8px 10px;
          display: flex;
          flex-direction: column;
          justify-content: center;
        }

        .related-video-title {
          font-size: 0.7rem;
          margin-bottom: 2px;
        }

        .related-video-meta {
          font-size: 0.6rem;
        }

        .related-video-duration {
          bottom: 4px;
          right: 4px;
          font-size: 0.55rem;
          padding: 1px 4px;
        }
      }

      /* ==============================================
         HEADER - Best practice: nav bar at top, centered hero (logo + tagline)
         ============================================== */
      header {
        margin-bottom: var(--space-14);
        padding: 0;
        animation: headerFade 0.8s ease-out;
        width: 100%;
      }

      /* Top bar: nav only, right-aligned (clear separation from hero) */
      .header-nav-bar {
        width: 100%;
        display: flex;
        justify-content: flex-end;
        align-items: center;
        margin-bottom: var(--space-8);
      }

      /* Hero: centered logo + tagline */
      .hero-branding {
        width: 100%;
        text-align: center;
      }

      .hero-branding .logo {
        margin-bottom: 0;
      }

      .hero-branding .tagline {
        margin-top: var(--space-6);
      }

      @keyframes headerFade {
        from {
          opacity: 0;
          transform: translateY(-16px);
        }
        to {
          opacity: 1;
          transform: translateY(0);
        }
      }

      /* Compact header on search and summary pages (no tagline) */
      body.search-page header,
      body.summary-page header {
        margin-bottom: var(--space-8);
      }

      body.search-page header .tagline,
      body.summary-page header .tagline {
        display: none;
      }

      body.search-page header .logo,
      body.summary-page header .logo {
        font-size: var(--text-4xl);
      }

      body.search-page header .logo-keyword,
      body.summary-page header .logo-keyword {
        display: none;
      }

      .logo {
        font-family: var(--font-primary);
        font-size: var(--text-display);
        font-weight: 600;
        color: var(--charcoal);
        letter-spacing: -0.03em;
        margin: 0;
        line-height: var(--leading-tight);
      }

      .logo-link {
        display: inline-block;
        color: inherit;
        text-decoration: none;
        transition: all 0.3s ease;
        cursor: pointer;
      }

      .logo-link:hover {
        transform: scale(1.02);
      }

      .logo-link:hover span:first-of-type {
        color: var(--sage-green-hover);
      }

      .logo-link:active {
        transform: scale(0.99);
      }

      /* "World" in sage green - the memorable brand element */
      .logo span:first-of-type {
        color: var(--sage-green);
        transition: color 0.3s ease;
      }

      .logo-keyword {
        display: block;
        font-size: 0.4em;
        font-weight: 400;
        color: var(--stone);
        letter-spacing: 0.04em;
        margin-top: var(--space-2);
        line-height: var(--leading-snug);
        text-transform: none;
      }

      .tagline {
        font-size: var(--text-lg);
        color: var(--stone);
        font-weight: 400;
        line-height: var(--leading-relaxed);
        width: 100%;
        max-width: 100%;
        margin: var(--space-8) 0 0 0;
        padding: 0;
        text-align: center;
        letter-spacing: 0.01em;
      }

      /* ==============================================
         Auth Page Styles (Moved from inline)
         ============================================== */
      body.page-auth .container {
          max-width: 1200px;
          padding: 40px 24px;
      }

      body.page-auth header {
          text-align: center;
          margin-bottom: 50px;
      }

      .auth-block {
          max-width: 400px;
          margin: 60px auto 48px;
          padding: 40px 32px;
          background: var(--warm-white);
          border-radius: 16px;
          border: 1px solid rgba(139, 134, 128, 0.08);
          box-shadow: 0 1px 3px rgba(139, 134, 128, 0.08);
      }

      .auth-block h1 {
          font-size: 1.75rem;
          font-weight: 600;
          color: var(--charcoal);
          margin-bottom: 8px;
      }

      .auth-block p {
          font-size: 0.95rem;
          color: var(--stone);
          margin-bottom: 24px;
      }

      .auth-block label {
          display: block;
          font-size: 0.9rem;
          font-weight: 500;
          color: var(--charcoal);
          margin-bottom: 6px;
      }

      .auth-block input[type="email"] {
          width: 100%;
          padding: 12px 14px;
          font-size: 1rem;
          font-family: var(--font-primary);
          border: 1px solid var(--mist);
          border-radius: 10px;
          margin-bottom: 20px;
          box-sizing: border-box;
      }

      .auth-block input[type="email"]:focus {
          outline: none;
          border-color: var(--sage-green);
      }

      .auth-block button {
          width: 100%;
          padding: 14px 24px;
          font-size: 1rem;
          font-weight: 600;
          font-family: var(--font-primary);
          background: var(--sage-green);
          color: white;
          border: none;
          border-radius: 12px;
          cursor: pointer;
          transition: background 0.2s ease;
      }

      .auth-block button:hover {
          background: var(--sage-green-hover);
      }

      .auth-block button:disabled {
          opacity: 0.7;
          cursor: not-allowed;
      }

      .auth-message {
          margin-top: 16px;
          padding: 12px 14px;
          border-radius: 10px;
          font-size: 0.9rem;
      }

      .auth-message.success {
          background: rgba(135, 168, 120, 0.15);
          color: var(--charcoal);
      }

      .auth-message.error {
          background: rgba(196, 92, 74, 0.15);
          color: #8b3a2e;
      }

      /* Main content */
      main {
        flex: 1;
        animation: fadeIn 1s ease-out 0.2s both;
      }

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

      /* ==============================================
         FLOATING PAPER CARDS
         The signature look: cards that feel like 
         cream-colored paper floating on the canvas
         ============================================== */
      
      /* Input section - Primary interaction card (IA: primary CTA above fold) */
      .input-section {
        background: var(--warm-white);
        border-radius: var(--space-5);
        padding: var(--space-10);
        box-shadow: var(--shadow-float);
        border: 1px solid rgba(31, 29, 26, 0.04);
        margin-bottom: var(--space-8);
        transition: 
          transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
          box-shadow 0.4s ease;
      }
      
      .input-section:hover {
        box-shadow: var(--shadow-elevated);
        transform: translateY(-2px);
      }

      /* Search section specific styles */
      .search-section {
        margin-bottom: var(--space-10);
      }

      .search-input-wrapper {
        margin-bottom: 0;
      }

      .search-input-container {
        position: relative;
        display: flex;
        align-items: center;
      }

      .search-input {
        padding-right: 60px;
      }

      .search-btn {
        position: absolute;
        right: var(--space-2);
        top: 50%;
        transform: translateY(-50%);
        padding: var(--space-3) var(--space-4);
        background: var(--sage-green);
        color: white;
        border: none;
        border-radius: var(--space-2);
        cursor: pointer;
        transition: all 0.3s ease;
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: auto;
        height: auto;
        width: auto;
      }

      .search-btn:hover {
        background: var(--sage-green-hover);
        transform: translateY(-50%) translateY(-1px);
        box-shadow: 0 2px 8px rgba(135, 168, 120, 0.3);
      }

      .search-btn:active {
        transform: translateY(-50%);
      }

      .search-btn svg {
        width: 20px;
        height: 20px;
      }

      .search-hint {
        text-align: center;
        color: var(--stone);
        font-size: var(--text-sm);
        margin-top: var(--space-4);
        margin-bottom: 0;
      }

      .search-hint a {
        color: var(--sage-green);
        text-decoration: none;
        transition: color 0.2s;
      }

      .search-hint a:hover {
        color: var(--sage-green-hover);
        text-decoration: underline;
      }

      /* ==============================================
         INPUT TABS - Paste URL / Search toggle
         ============================================== */
      .input-tabs {
        display: flex;
        gap: var(--space-2);
        margin-bottom: var(--space-8);
        border-bottom: 2px solid var(--mist);
        padding-bottom: 0;
      }

      .input-tab {
        font-family: var(--font-primary);
        font-size: var(--text-md);
        font-weight: 500;
        color: var(--stone);
        background: none;
        border: none;
        border-bottom: 3px solid transparent;
        padding: var(--space-4) var(--space-6) var(--space-4);
        margin-bottom: -2px;
        cursor: pointer;
        transition: all 0.25s ease;
        border-radius: var(--space-3) var(--space-3) 0 0;
        touch-action: manipulation;
      }

      .input-tab:hover {
        color: var(--charcoal);
        background: rgba(135, 168, 120, 0.04);
      }

      .input-tab[aria-selected="true"],
      .input-tab.input-tab--active {
        color: var(--sage-green);
        border-bottom-color: var(--sage-green);
        font-weight: 600;
      }

      .input-tabpanel {
        display: none;
      }

      .input-tabpanel.input-tabpanel--active,
      .input-tabpanel[aria-hidden="false"] {
        display: block;
        animation: fadeIn 0.3s ease;
      }

      .input-label {
        display: block;
        font-family: var(--font-primary);
        font-size: var(--text-xl);
        font-weight: 500;
        color: var(--charcoal);
        margin-bottom: var(--space-4);
      }

      .url-input-wrapper {
        position: relative;
        margin-bottom: var(--space-6);
      }

      .url-input {
        width: 100%;
        padding: var(--space-5) var(--space-5);
        font-family: var(--font-primary);
        font-size: var(--text-md);
        border: 2px solid var(--mist);
        border-radius: var(--space-4);
        background: var(--cream);
        color: var(--charcoal);
        transition: all 0.25s ease;
        outline: none;
      }

      .url-input::placeholder {
        color: var(--stone);
        opacity: 0.6;
      }

      .url-input:hover {
        border-color: rgba(135, 168, 120, 0.3);
        background: var(--blush);
      }

      .url-input:focus {
        border-color: var(--sage-green);
        background: var(--warm-white);
        box-shadow: var(--shadow-glow);
      }

      /* ==============================================
         MODE TOGGLE - Quick/Detailed selector
         ============================================== */
      .mode-toggle {
        display: flex;
        align-items: center;
        gap: var(--space-4);
        margin-bottom: var(--space-6);
      }

      .mode-label {
        font-size: var(--text-sm);
        color: var(--stone);
        font-weight: 500;
      }

      .toggle-options {
        display: flex;
        gap: var(--space-3);
      }

      .toggle-option {
        cursor: pointer;
      }

      .toggle-option input {
        display: none;
      }

      .toggle-option .option-content {
        display: flex;
        align-items: center;
        gap: var(--space-2);
        padding: var(--space-3) var(--space-5);
        min-height: var(--touch-target-min);
        border-radius: var(--space-3);
        border: 2px solid var(--mist);
        background: var(--cream);
        font-size: var(--text-sm);
        font-weight: 500;
        color: var(--stone);
        transition: all 0.25s ease;
        touch-action: manipulation;
      }

      .toggle-option .option-icon {
        font-size: var(--text-base);
      }

      .toggle-option input:checked + .option-content {
        border-color: var(--sage-green);
        background: rgba(135, 168, 120, 0.08);
        color: var(--sage-green);
        box-shadow: var(--shadow-glow);
      }

      .toggle-option:hover .option-content {
        border-color: rgba(135, 168, 120, 0.4);
        background: var(--blush);
      }

      .generate-btn {
        width: 100%;
        padding: var(--space-5) var(--space-8);
        font-family: var(--font-primary);
        font-size: var(--text-md);
        font-weight: 600;
        letter-spacing: 0.02em;
        color: white;
        background: var(--sage-green);
        border: none;
        border-radius: var(--space-4);
        cursor: pointer;
        transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
        display: flex;
        align-items: center;
        justify-content: center;
        gap: var(--space-3);
        touch-action: manipulation;
        box-shadow: 
          0 2px 4px rgba(135, 168, 120, 0.15),
          0 8px 20px rgba(135, 168, 120, 0.2);
        position: relative;
        overflow: hidden;
      }

      /* Subtle shine effect */
      .generate-btn::before {
        content: '';
        position: absolute;
        top: 0;
        left: -100%;
        width: 100%;
        height: 100%;
        background: linear-gradient(
          90deg,
          transparent 0%,
          rgba(255, 255, 255, 0.15) 50%,
          transparent 100%
        );
        transition: left 0.5s ease;
      }

      .generate-btn:hover:not(:disabled)::before {
        left: 100%;
      }

      .generate-btn:hover:not(:disabled) {
        background: var(--sage-green-hover);
        transform: translateY(-3px) scale(1.01);
        box-shadow: 
          0 4px 8px rgba(135, 168, 120, 0.2),
          0 12px 28px rgba(135, 168, 120, 0.25);
      }

      .generate-btn:active:not(:disabled) {
        transform: translateY(-1px) scale(1);
        box-shadow: 
          0 2px 4px rgba(135, 168, 120, 0.2),
          0 4px 12px rgba(135, 168, 120, 0.15);
      }

      .generate-btn:disabled {
        display: none;
      }

      .generate-btn svg {
        width: 20px;
        height: 20px;
        flex-shrink: 0;
      }

      /* ==============================================
         PROGRESS BAR - Elegant loading state
         ============================================== */
      .progress-container {
        margin-top: var(--space-6);
        display: none;
      }

      .progress-container.visible {
        display: block;
        animation: fadeIn 0.3s ease;
      }

      .progress-bar-wrapper {
        height: 6px;
        background: var(--mist);
        border-radius: var(--space-1);
        overflow: hidden;
        margin-bottom: var(--space-4);
      }

      .progress-bar {
        height: 100%;
        background: linear-gradient(
          90deg,
          var(--sage-green-light) 0%,
          var(--sage-green) 50%,
          var(--sage-green-hover) 100%
        );
        border-radius: 3px;
        width: 0%;
        transition: width 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
        position: relative;
        overflow: hidden;
      }

      .progress-bar.waiting {
        animation: progressPulse 1.5s ease-in-out infinite;
      }

      .progress-bar.waiting::after {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: linear-gradient(
          90deg,
          transparent 0%,
          rgba(255, 255, 255, 0.5) 50%,
          transparent 100%
        );
        animation: shimmer 1.2s infinite linear;
      }

      @keyframes shimmer {
        0% {
          transform: translateX(-100%);
        }
        100% {
          transform: translateX(100%);
        }
      }

      @keyframes progressPulse {
        0%, 100% {
          opacity: 1;
        }
        50% {
          opacity: 0.8;
        }
      }

      .progress-text {
        font-size: var(--text-sm);
        color: var(--stone);
        text-align: center;
        font-weight: 500;
      }

      .progress-text.slow-warning {
        color: #9a7b4f;
      }

      .progress-subtext {
        font-size: var(--text-xs);
        color: var(--stone);
        text-align: center;
        margin-top: var(--space-2);
        opacity: 0.75;
      }

      /* ==============================================
         PROGRESS UX — Thumbnail, Timeline, Tips, Dot
         ============================================== */

      /* Instant video thumbnail preview */
      .progress-preview {
        display: flex;
        align-items: center;
        gap: var(--space-4);
        margin-bottom: var(--space-5);
        padding: var(--space-3);
        background: rgba(135, 168, 120, 0.04);
        border-radius: var(--space-3);
        border: 1px solid rgba(135, 168, 120, 0.1);
        animation: fadeIn 0.4s ease;
      }

      .progress-thumbnail {
        width: 80px;
        height: 45px;
        border-radius: var(--space-2);
        object-fit: cover;
        flex-shrink: 0;
        background: var(--mist);
      }

      .progress-preview-title {
        font-size: var(--text-sm);
        font-weight: 500;
        color: var(--charcoal);
        line-height: 1.4;
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
      }

      /* Activity dot — constant proof of life */
      .activity-dot {
        display: inline-block;
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: var(--sage-green);
        margin-right: var(--space-2);
        vertical-align: middle;
        animation: activityPulse 1.5s ease-in-out infinite;
        box-shadow: 0 0 6px rgba(135, 168, 120, 0.4);
      }

      @keyframes activityPulse {
        0%, 100% {
          opacity: 1;
          transform: scale(1);
          box-shadow: 0 0 6px rgba(135, 168, 120, 0.4);
        }
        50% {
          opacity: 0.5;
          transform: scale(0.8);
          box-shadow: 0 0 2px rgba(135, 168, 120, 0.2);
        }
      }

      /* Tip rotator — fade transition for cycling messages */
      .progress-tip {
        font-size: var(--text-sm);
        color: var(--stone);
        text-align: center;
        margin-top: var(--space-2);
        min-height: 1.4em;
        transition: opacity 0.3s ease;
      }

      .progress-tip.fading {
        opacity: 0;
      }

      /* Stage timeline — Whisper fallback visual pipeline */
      .stage-timeline {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0;
        margin: var(--space-4) 0 var(--space-5);
        padding: var(--space-4) var(--space-3);
        background: rgba(135, 168, 120, 0.04);
        border-radius: var(--space-3);
        border: 1px solid rgba(135, 168, 120, 0.08);
        animation: fadeIn 0.4s ease;
      }

      .stage-step {
        display: flex;
        align-items: center;
        gap: var(--space-2);
        font-size: var(--text-xs);
        color: var(--stone);
        opacity: 0.45;
        transition: all 0.4s ease;
        white-space: nowrap;
      }

      .stage-step.completed {
        opacity: 1;
        color: var(--sage-green);
      }

      .stage-step.active {
        opacity: 1;
        color: var(--charcoal);
        font-weight: 500;
      }

      .stage-dot {
        width: 10px;
        height: 10px;
        border-radius: 50%;
        border: 2px solid var(--mist);
        background: transparent;
        flex-shrink: 0;
        transition: all 0.4s ease;
      }

      .stage-step.completed .stage-dot {
        background: var(--sage-green);
        border-color: var(--sage-green);
      }

      .stage-step.active .stage-dot {
        border-color: var(--sage-green);
        background: var(--sage-green);
        animation: activityPulse 1.5s ease-in-out infinite;
      }

      .stage-connector {
        width: 20px;
        height: 2px;
        background: var(--mist);
        margin: 0 var(--space-1);
        flex-shrink: 0;
        transition: background 0.4s ease;
      }

      .stage-connector.completed {
        background: var(--sage-green);
      }

      /* Time estimate */
      .progress-estimate {
        font-size: var(--text-xs);
        color: var(--stone);
        text-align: center;
        margin-top: var(--space-1);
        opacity: 0.65;
        font-variant-numeric: tabular-nums;
      }

      /* Breathing dots — skeleton loading indicator */
      .breathing-dots {
        display: flex;
        align-items: center;
        gap: 4px;
      }

      .breathing-dots span {
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: var(--sage-green);
        opacity: 0.4;
        animation: breathe 1.4s ease-in-out infinite;
      }

      .breathing-dots span:nth-child(2) {
        animation-delay: 0.2s;
      }

      .breathing-dots span:nth-child(3) {
        animation-delay: 0.4s;
      }

      @keyframes breathe {
        0%, 100% {
          opacity: 0.3;
          transform: scale(0.8);
        }
        50% {
          opacity: 1;
          transform: scale(1.1);
        }
      }

      @media (max-width: 480px) {
        .stage-timeline {
          gap: 0;
          padding: var(--space-3) var(--space-2);
        }
        .stage-step {
          font-size: 0.65rem;
        }
        .stage-connector {
          width: 12px;
        }
        .progress-thumbnail {
          width: 64px;
          height: 36px;
        }
      }

      /* ==============================================
         FAQ Page Styles (Moved from inline)
         ============================================== */
      body.page-faq .container {
          max-width: 800px;
          padding: 40px 24px;
      }

      .page-header {
          margin-bottom: 40px;
          text-align: center;
      }

      .page-header h1 {
          font-size: 2.5rem;
          font-weight: 600;
          color: var(--charcoal);
          line-height: 1.2;
          margin-bottom: 16px;
      }

      .page-header p {
          font-size: 1.15rem;
          color: var(--stone);
          line-height: 1.7;
      }

      @media (max-width: 768px) {
          .page-header h1 {
              font-size: 2rem;
          }
      }

      .cta-section {
          background: linear-gradient(135deg, rgba(135, 168, 120, 0.1) 0%, rgba(181, 203, 183, 0.1) 100%);
          border-radius: 16px;
          padding: 40px;
          text-align: center;
          margin: 50px 0;
          border: 1px solid rgba(135, 168, 120, 0.2);
      }

      .cta-section h2 {
          font-size: 2rem;
          font-weight: 600;
          color: var(--charcoal);
          margin-bottom: 16px;
      }

      .cta-section p {
          font-size: 1.1rem;
          color: var(--stone);
          margin-bottom: 24px;
          max-width: 600px;
          margin-left: auto;
          margin-right: auto;
      }

      .cta-button {
          display: inline-block;
          padding: 16px 32px;
          background: var(--sage-green);
          color: white;
          text-decoration: none;
          border-radius: 12px;
          font-weight: 500;
          font-size: 1rem;
          transition: all 0.3s ease;
      }

      .cta-button:hover {
          padding: 24px;
          box-shadow: 0 1px 3px rgba(139, 134, 128, 0.08);
          border: 1px solid rgba(139, 134, 128, 0.06);
      }

      .use-case-card h3 {
          font-size: 1.2rem;
          font-weight: 600;
          color: var(--charcoal);
          margin-bottom: 12px;
      }

      .use-case-card p {
          color: var(--stone);
          font-size: 0.95rem;
          line-height: 1.6;
      }

      @media (max-width: 768px) {
          .article-header h1 { font-size: 2rem; }
          .step-section { padding: 24px; }
          .use-cases { grid-template-columns: 1fr; }
      }

      /* ==============================================
         Account Page Styles
         ============================================== */
      body.page-account .container {
          max-width: 800px;
          padding: 40px 24px;
      }

      .account-card {
          background: var(--warm-white);
          border-radius: 16px;
          padding: 28px;
          margin-bottom: 24px;
          border: 1px solid rgba(139, 134, 128, 0.08);
          box-shadow: 0 1px 3px rgba(139, 134, 128, 0.08);
      }

      .card-header {
          display: flex;
          justify-content: space-between;
          align-items: center;
          margin-bottom: 20px;
      }

      .card-title {
          font-size: 1.25rem;
          font-weight: 600;
          color: var(--charcoal);
      }

      .plan-badge {
          display: inline-block;
          padding: 6px 14px;
          border-radius: 20px;
          font-size: 0.8rem;
          font-weight: 600;
          text-transform: uppercase;
          letter-spacing: 0.03em;
      }

      .plan-badge.free { background: var(--mist); color: var(--stone); }
      .plan-badge.light { background: var(--sage-green-light); color: var(--sage-green-hover); }
      .plan-badge.power { background: var(--sage-green); color: white; }

      .usage-stats { margin-bottom: 20px; }
      .usage-label { display: flex; justify-content: space-between; margin-bottom: 10px; font-size: 0.95rem; color: var(--charcoal); }

      .usage-bar {
          height: 12px;
          background: var(--mist);
          border-radius: 6px;
          overflow: hidden;
      }

      .usage-fill {
          height: 100%;
          background: var(--sage-green);
          border-radius: 6px;
          transition: width 0.3s ease;
      }
      .usage-fill.warning { background: #e6a23c; }
      .usage-fill.danger { background: #c45c4a; }

      .stat-row {
          display: flex;
          justify-content: space-between;
          padding: 12px 0;
          border-bottom: 1px solid var(--mist);
          font-size: 0.95rem;
      }
      .stat-row:last-child { border-bottom: none; }
      .stat-label { color: var(--stone); }
      .stat-value { font-weight: 500; color: var(--charcoal); }

      .actions-card { text-align: center; }
      .actions-card .btn-group { justify-content: center; }

      @media (max-width: 600px) {
          .account-card { padding: 20px; }
          body.page-account .card-header { flex-direction: column; align-items: flex-start; gap: 12px; }
      }

      /* ==============================================
         Pricing Thank You Page Styles
         ============================================== */
      body.page-pricing-thank-you .container {
          max-width: 800px;
          padding: 40px 24px;
      }

      .thank-you-block {
          text-align: center;
          max-width: 520px;
          margin: 60px auto 48px;
          padding: 48px 32px;
          background: var(--warm-white);
          border-radius: 16px;
          border: 1px solid rgba(139, 134, 128, 0.08);
          box-shadow: 0 1px 3px rgba(139, 134, 128, 0.08);
      }

      .thank-you-block h1 {
          font-size: 2rem;
          font-weight: 600;
          color: var(--charcoal);
          margin-bottom: 12px;
      }

      .thank-you-block p {
          font-size: 1.1rem;
          color: var(--stone);
          margin-bottom: 28px;
      }

      .thank-you-block .plan-name {
          font-weight: 600;
          color: var(--sage-green);
      }

      .thank-you-actions {
          display: flex;
          flex-wrap: wrap;
          gap: 12px;
          justify-content: center;
      }

      .thank-you-actions a {
          display: inline-block;
          padding: 14px 24px;
          border-radius: 12px;
          font-size: 1rem;
          font-weight: 600;
          font-family: var(--font-primary);
          text-decoration: none;
          transition: all 0.2s ease;
      }

      .thank-you-actions .btn-primary {
          background: var(--sage-green);
          color: white;
      }

      .thank-you-actions .btn-primary:hover {
          background: var(--sage-green-hover);
      }

      .thank-you-actions .btn-secondary {
          background: var(--warm-white);
          color: var(--sage-green);
          border: 2px solid var(--sage-green);
      }

      .thank-you-actions .btn-secondary:hover {
          background: rgba(135, 168, 120, 0.1);
      }

      /* ==============================================
         Content Pages Styles (Comparison, Resources, Vs-ChatGPT)
         ============================================== */
      body.page-comparison .container,
      body.page-resources .container,
      body.page-vs-chatgpt .container {
          max-width: 900px;
          padding: 40px 24px;
      }

      .article-header,
      .page-header {
          margin-bottom: 40px;
          text-align: center;
      }

      .article-header h1,
      .page-header h1 {
          font-size: 2.5rem;
          font-weight: 600;
          color: var(--charcoal);
          line-height: 1.2;
          margin-bottom: 16px;
      }

      .article-intro,
      .page-header p {
          font-size: 1.15rem;
          color: var(--stone);
          line-height: 1.7;
          margin-bottom: 40px;
      }

      .comparison-section {
          background: var(--warm-white);
          border-radius: 16px;
          padding: 40px;
          margin-bottom: 40px;
          box-shadow: 0 1px 3px rgba(139, 134, 128, 0.08);
          border: 1px solid rgba(139, 134, 128, 0.06);
      }

      .section-title,
      .category-title {
          font-size: 1.75rem;
          font-weight: 600;
          color: var(--charcoal);
          margin-bottom: 24px;
      }

      .category-title {
          padding-bottom: 12px;
          border-bottom: 2px solid var(--mist);
      }

      .comparison-table {
          width: 100%;
          border-collapse: collapse;
          margin-bottom: 30px;
      }

      .comparison-table th,
      .comparison-table td {
          padding: 16px;
          text-align: left;
          border-bottom: 1px solid var(--mist);
      }

      .comparison-table th {
          font-weight: 600;
          color: var(--charcoal);
          background: rgba(135, 168, 120, 0.05);
          font-size: 0.95rem;
      }

      .comparison-table td {
          color: var(--stone);
          font-size: 0.95rem;
      }

      .tool-name {
          font-weight: 600;
          color: var(--charcoal);
      }

      .feature-yes { color: var(--sage-green); font-weight: 500; }
      .feature-no { color: var(--stone); opacity: 0.5; }

      .tool-review {
          background: var(--warm-white);
          border-radius: 16px;
          padding: 32px;
          margin-bottom: 32px;
          box-shadow: 0 1px 3px rgba(139, 134, 128, 0.08);
          border: 1px solid rgba(139, 134, 128, 0.06);
      }

      .tool-review h3 {
          font-size: 1.5rem;
          font-weight: 600;
          color: var(--charcoal);
          margin-bottom: 12px;
      }

      .tool-review .highlight {
          background: rgba(135, 168, 120, 0.1);
          padding: 2px 8px;
          border-radius: 4px;
          font-weight: 500;
          color: var(--sage-green-hover);
      }

      .pros-cons {
          display: grid;
          grid-template-columns: 1fr 1fr;
          gap: 24px;
          margin-top: 20px;
      }

      .pros { background: rgba(135, 168, 120, 0.08); padding: 20px; border-radius: 12px; }
      .cons { background: rgba(200, 100, 100, 0.08); padding: 20px; border-radius: 12px; }

      .pros h4 { color: var(--sage-green-hover); margin-bottom: 12px; font-weight: 600; }
      .cons h4 { color: #8b4049; margin-bottom: 12px; font-weight: 600; }

      .pros ul, .cons ul { list-style: none; padding: 0; }
      .pros li, .cons li { padding: 6px 0; color: var(--stone); font-size: 0.95rem; }
      .pros li:before { content: "✓ "; color: var(--sage-green); font-weight: 600; margin-right: 6px; }
      .cons li:before { content: "× "; color: #8b4049; font-weight: 600; margin-right: 6px; }

      /* Comparison Grid (Vs Page) */
      .comparison-grid {
          display: grid;
          grid-template-columns: 1fr 1fr;
          gap: 24px;
          margin-top: 24px;
      }

      .comparison-card {
          padding: 24px;
          border-radius: 12px;
          border: 2px solid var(--mist);
      }

      .comparison-card.summaryworld {
          border-color: var(--sage-green);
          background: rgba(135, 168, 120, 0.05);
      }

      .comparison-card h3 {
          font-size: 1.5rem;
          font-weight: 600;
          color: var(--charcoal);
          margin-bottom: 16px;
      }

      .comparison-card ul { list-style: none; padding: 0; }
      .comparison-card li {
          padding: 10px 0;
          color: var(--stone);
          padding-left: 28px;
          position: relative;
          line-height: 1.6;
      }
      .comparison-card li:before {
          content: "✓";
          position: absolute;
          left: 0;
          color: var(--sage-green);
          font-weight: 600;
      }
      .comparison-card.chatgpt li:before { color: var(--stone); }

      /* Feature Comparison (Vs Page) */
      .feature-row {
          display: grid;
          grid-template-columns: 2fr 1fr 1fr;
          gap: 16px;
          padding: 20px;
          border-bottom: 1px solid var(--mist);
          align-items: center;
      }
      .feature-row:last-child { border-bottom: none; }
      .feature-name { font-weight: 500; color: var(--charcoal); }
      .feature-value { text-align: center; color: var(--stone); }
      .feature-value.winner { color: var(--sage-green); font-weight: 600; }

      .verdict-section {
          background: linear-gradient(135deg, rgba(135, 168, 120, 0.1) 0%, rgba(181, 203, 183, 0.1) 100%);
          border-radius: 16px;
          padding: 40px;
          margin: 40px 0;
          border: 1px solid rgba(135, 168, 120, 0.2);
      }
      .verdict-section h2 { font-size: 2rem; font-weight: 600; color: var(--charcoal); margin-bottom: 20px; }
      .verdict-section p { color: var(--stone); font-size: 1.1rem; line-height: 1.8; margin-bottom: 16px; }

      /* Resource Grid */
      .resource-grid {
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
          gap: 24px;
          margin: 40px 0;
      }

      .resource-card {
          background: var(--warm-white);
          border-radius: 16px;
          padding: 32px;
          box-shadow: 0 1px 3px rgba(139, 134, 128, 0.08);
          border: 1px solid rgba(139, 134, 128, 0.06);
          transition: all 0.3s ease;
          text-decoration: none;
          color: inherit;
          display: block;
      }

      .resource-card:hover {
          box-shadow: 0 4px 20px rgba(135, 168, 120, 0.15);
          transform: translateY(-4px);
          border-color: rgba(135, 168, 120, 0.2);
      }

      .resource-icon { font-size: 2.5rem; margin-bottom: 16px; }
      .resource-card h3 { font-size: 1.3rem; font-weight: 600; color: var(--charcoal); margin-bottom: 12px; }
      .resource-card p { color: var(--stone); font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px; }
      
      .resource-link {
          color: var(--sage-green); font-weight: 500; font-size: 0.95rem;
          text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
      }
      .resource-link:hover { color: var(--sage-green-hover); }
      .resource-link::after { content: "→"; transition: transform 0.2s; }
      .resource-card:hover .resource-link::after { transform: translateX(4px); }

      @media (max-width: 768px) {
          .pros-cons, .comparison-grid, .feature-row, .resource-grid { grid-template-columns: 1fr; }
          .feature-row { grid-template-columns: 1fr; gap: 8px; }
          .feature-value { text-align: left; }
      }

      /* ==============================================
         Maintenance Page Styles
         ============================================== */
      body.page-maintenance {
          background: linear-gradient(180deg, #e8f0e4 0%, var(--cream) 40%, #f5efe8 100%);
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: center;
          min-height: 100vh;
          position: relative;
          overflow: hidden;
      }
      
      body.page-maintenance .background { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
      body.page-maintenance .cloud { position: absolute; background: rgba(255, 255, 255, 0.6); border-radius: 50%; filter: blur(30px); }
      body.page-maintenance .cloud-1 { width: 200px; height: 60px; top: 15%; left: 10%; animation: drift 45s linear infinite; }
      body.page-maintenance .cloud-2 { width: 300px; height: 80px; top: 25%; right: 5%; animation: drift 60s linear infinite reverse; animation-delay: -20s; }
      body.page-maintenance .cloud-3 { width: 150px; height: 50px; top: 10%; left: 60%; animation: drift 50s linear infinite; animation-delay: -10s; }
      
      @keyframes drift {
          0% { transform: translateX(-100px); }
          100% { transform: translateX(100px); }
      }
      
      body.page-maintenance .ground {
          position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
          background: linear-gradient(180deg, transparent 0%, rgba(181, 203, 183, 0.3) 50%, rgba(135, 168, 120, 0.4) 100%);
      }
      
      body.page-maintenance .content {
          position: relative; z-index: 10; display: flex; flex-direction: column; align-items: center;
          text-align: center; padding: 20px; animation: fadeIn 1s ease-out;
      }
      @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
      
      .tree-container { width: 280px; height: 340px; margin-bottom: 40px; position: relative; }
      .tree-svg { width: 100%; height: 100%; overflow: visible; }
      .trunk { fill: var(--bark); }
      .trunk-highlight { fill: var(--bark-dark); }
      .leaves { transform-origin: center bottom; }
      
      .leaf-group-1 { animation: sway1 4s ease-in-out infinite; }
      .leaf-group-2 { animation: sway2 5s ease-in-out infinite; animation-delay: -1s; }
      .leaf-group-3 { animation: sway3 4.5s ease-in-out infinite; animation-delay: -2s; }
      .leaf-group-4 { animation: sway1 5.5s ease-in-out infinite; animation-delay: -0.5s; }
      .leaf-group-5 { animation: sway2 4s ease-in-out infinite; animation-delay: -1.5s; }
      
      @keyframes sway1 { 0%, 100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(2deg) translateX(3px); } 75% { transform: rotate(-1.5deg) translateX(-2px); } }
      @keyframes sway2 { 0%, 100% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(-2deg) translateX(-3px); } 70% { transform: rotate(1.5deg) translateX(2px); } }
      @keyframes sway3 { 0%, 100% { transform: rotate(0deg) translateX(0); } 20% { transform: rotate(1.5deg) translateX(2px); } 60% { transform: rotate(-2.5deg) translateX(-4px); } }
      
      .leaf { transform-origin: center; animation: leafRustle 3s ease-in-out infinite; }
      .leaf:nth-child(odd) { animation-delay: -0.5s; animation-duration: 3.5s; }
      .leaf:nth-child(3n) { animation-delay: -1s; animation-duration: 4s; }
      .leaf:nth-child(5n) { animation-delay: -1.5s; animation-duration: 3.2s; }
      @keyframes leafRustle { 0%, 100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(2deg); } }
      
      .falling-leaf { position: absolute; width: 12px; height: 12px; opacity: 0; pointer-events: none; }
      .falling-leaf path { fill: var(--sage-green); }
      .falling-leaf-1 { top: 30%; left: 45%; animation: fall1 8s ease-in-out infinite; animation-delay: 2s; }
      .falling-leaf-2 { top: 25%; left: 55%; animation: fall2 10s ease-in-out infinite; animation-delay: 5s; }
      .falling-leaf-3 { top: 35%; left: 40%; animation: fall3 9s ease-in-out infinite; animation-delay: 8s; }
      
      @keyframes fall1 { 0% { opacity: 0; transform: translate(0, 0) rotate(0deg); } 10% { opacity: 0.8; } 90% { opacity: 0.6; } 100% { opacity: 0; transform: translate(60px, 200px) rotate(360deg); } }
      @keyframes fall2 { 0% { opacity: 0; transform: translate(0, 0) rotate(0deg); } 10% { opacity: 0.7; } 90% { opacity: 0.5; } 100% { opacity: 0; transform: translate(-40px, 220px) rotate(-270deg); } }
      @keyframes fall3 { 0% { opacity: 0; transform: translate(0, 0) rotate(0deg); } 10% { opacity: 0.8; } 90% { opacity: 0.4; } 100% { opacity: 0; transform: translate(30px, 180px) rotate(300deg); } }
      
      body.page-maintenance .logo { font-size: 2rem; font-weight: 500; color: var(--charcoal); letter-spacing: -0.02em; margin-bottom: 32px; }
      body.page-maintenance .logo span { color: var(--sage-green); }
      
      body.page-maintenance .message { max-width: 400px; }
      body.page-maintenance .message h1 { font-size: 1.4rem; font-weight: 500; color: var(--charcoal); margin-bottom: 12px; line-height: 1.4; }
      body.page-maintenance .message p { font-size: 1rem; color: var(--stone); font-weight: 400; line-height: 1.6; }
      
      body.page-maintenance .dots { display: flex; gap: 8px; margin-top: 32px; }
      body.page-maintenance .dot { width: 8px; height: 8px; background: var(--sage-green-light); border-radius: 50%; animation: pulse 2s ease-in-out infinite; }
      body.page-maintenance .dot:nth-child(2) { animation-delay: 0.3s; }
      body.page-maintenance .dot:nth-child(3) { animation-delay: 0.6s; }
      @keyframes pulse { 0%, 100% { opacity: 0.4; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1); } }
      
      @media (max-width: 480px) {
          .tree-container { width: 220px; height: 270px; margin-bottom: 30px; }
          body.page-maintenance .logo { font-size: 1.6rem; margin-bottom: 24px; }
          body.page-maintenance .message h1 { font-size: 1.2rem; }
          body.page-maintenance .message p { font-size: 0.95rem; }
      }

      /* End of main.css */
      /* Status messages */
      .status {
        text-align: center;
        padding: var(--space-4);
        border-radius: var(--space-3);
        font-size: var(--text-md);
        display: none;
      }

      .status.visible {
        display: block;
        animation: fadeIn 0.3s ease;
      }

      .status.loading {
        background: rgba(135, 168, 120, 0.1);
        color: var(--sage-green-hover);
      }

      .status.error {
        background: rgba(200, 100, 100, 0.1);
        color: #8b4049;
      }

      /* Result section - The main event, dramatic entrance */
      .result-section {
        background: var(--warm-white);
        border-radius: var(--space-6);
        padding: var(--space-12);
        box-shadow: var(--shadow-float);
        border: 1px solid rgba(31, 29, 26, 0.04);
        display: none;
        /* Signature entrance: float up with subtle scale */
        animation: summaryReveal 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
      }

      .result-section.visible {
        display: block;
      }
      
      /* THE signature animation - summary floating into view */
      @keyframes summaryReveal {
        0% {
          opacity: 0;
          transform: translateY(40px) scale(0.97);
        }
        60% {
          opacity: 1;
        }
        100% {
          opacity: 1;
          transform: translateY(0) scale(1);
        }
      }

      /* Summary layout result section - always block when parent is visible */
      .summary-main-content .result-section.visible {
        display: block;
      }

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

      /* Skeleton loading styles */
      @keyframes shimmer {
        0% {
          background-position: -200% 0;
        }
        100% {
          background-position: 200% 0;
        }
      }

      .skeleton {
        background: linear-gradient(
          90deg,
          var(--mist) 25%,
          var(--cream) 50%,
          var(--mist) 75%
        );
        background-size: 200% 100%;
        animation: shimmer 1.5s ease-in-out infinite;
        border-radius: 4px;
      }

      .skeleton-title {
        height: 1.5rem;
        width: 70%;
        margin-bottom: var(--space-4);
        padding-bottom: var(--space-4);
        border-bottom: 1px solid var(--mist);
      }

      .skeleton-line {
        height: 1rem;
        margin-bottom: var(--space-3);
      }

      .skeleton-line:nth-child(2) {
        width: 100%;
      }
      .skeleton-line:nth-child(3) {
        width: 95%;
      }
      .skeleton-line:nth-child(4) {
        width: 88%;
      }
      .skeleton-line:nth-child(5) {
        width: 92%;
      }
      .skeleton-line:nth-child(6) {
        width: 85%;
      }
      .skeleton-line:nth-child(7) {
        width: 78%;
      }
      .skeleton-line:nth-child(8) {
        width: 90%;
      }
      .skeleton-line:nth-child(9) {
        width: 60%;
        margin-bottom: 24px;
      }

      .skeleton-heading {
        height: 1.1rem;
        width: 35%;
        margin-top: var(--space-6);
        margin-bottom: var(--space-4);
      }

      .skeleton-content {
        padding-top: var(--space-2);
      }

      .skeleton-progress {
        display: flex;
        align-items: center;
        gap: var(--space-3);
        margin-top: var(--space-6);
        padding-top: var(--space-4);
        border-top: 1px solid var(--mist);
      }

      .skeleton-spinner {
        width: 20px;
        height: 20px;
        border: 2px solid var(--mist);
        border-top-color: var(--sage-green);
        border-radius: 50%;
        animation: spin 0.8s linear infinite;
      }

      @keyframes spin {
        to {
          transform: rotate(360deg);
        }
      }

      .skeleton-status {
        font-size: var(--text-sm);
        color: var(--stone);
      }

      .video-title {
        font-family: var(--font-primary);
        font-size: var(--text-2xl);
        font-weight: 700;
        color: var(--charcoal);
        margin-bottom: var(--space-3);
        letter-spacing: -0.02em;
        line-height: var(--leading-snug);
      }

      /* Video metadata - subtle duration badge */
      .video-meta {
        display: none;
        font-size: var(--text-md);
        color: var(--stone);
        margin-bottom: var(--space-8);
        padding: var(--space-2) var(--space-4);
        background: var(--blush);
        border-radius: var(--space-5);
        width: fit-content;
      }

      .video-meta.visible {
        display: inline-block;
      }

      /* Public Summary Controls */
      .public-summary-controls {
        margin-top: var(--space-8);
        padding: var(--space-5);
        background: var(--cream);
        border: 1px solid var(--mist);
        border-radius: var(--space-3);
      }

      .public-controls-inner {
        display: flex;
        flex-direction: column;
        gap: var(--space-4);
      }

      .public-toggle-label {
        display: flex;
        align-items: flex-start;
        gap: var(--space-3);
        cursor: pointer;
        user-select: none;
      }

      .public-toggle-label input[type="checkbox"] {
        width: 1.25rem;
        height: 1.25rem;
        margin-top: var(--space-1);
        cursor: pointer;
        accent-color: var(--sage-green);
      }

      .toggle-text {
        font-weight: 500;
        color: var(--charcoal);
        font-size: var(--text-md);
      }

      .toggle-subtext {
        display: block;
        font-size: var(--text-md);
        color: var(--stone);
        margin-top: var(--space-1);
      }

      .share-section {
        padding-top: var(--space-4);
        border-top: 1px solid var(--mist);
      }

      .share-link-container {
        display: flex;
        gap: var(--space-2);
        margin-bottom: var(--space-3);
      }

      .share-link-input {
        flex: 1;
        padding: var(--space-3) var(--space-4);
        border: 1px solid var(--mist);
        border-radius: var(--space-2);
        background: white;
        font-size: var(--text-sm);
        color: var(--charcoal);
        font-family: monospace;
      }

      .copy-link-btn {
        padding: var(--space-3) var(--space-4);
        min-height: var(--touch-target-min);
        background: var(--sage-green);
        color: white;
        border: none;
        border-radius: var(--space-2);
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background 0.2s;
        touch-action: manipulation;
      }

      .copy-link-btn:hover {
        background: var(--sage-green-hover);
      }

      .copy-link-btn svg {
        width: 18px;
        height: 18px;
      }

      .view-count {
        font-size: var(--text-md);
        color: var(--stone);
        display: flex;
        align-items: center;
        gap: var(--space-2);
      }

      .view-count::before {
        content: "👁";
        font-size: 1rem;
      }

      @media (max-width: 768px) {
        .public-summary-controls {
          padding: 16px;
        }

        .share-link-container {
          flex-direction: column;
        }

        .copy-link-btn {
          width: 100%;
        }
      }

      /* Library Page Styles */
      .library-section {
        max-width: 1200px;
        margin: 0 auto;
        padding: 40px 20px;
      }

      .library-header {
        text-align: center;
        margin-bottom: 40px;
      }

      .library-header h1 {
        font-family: var(--font-primary);
        font-size: 2.5rem;
        font-weight: 700;
        color: var(--charcoal);
        margin-bottom: 12px;
      }

      .library-description {
        font-size: 1.1rem;
        color: var(--stone);
      }

      .library-search {
        display: flex;
        gap: 12px;
        margin-bottom: 32px;
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
      }

      .library-search input {
        flex: 1;
        padding: 12px 16px;
        border: 1px solid var(--mist);
        border-radius: 8px;
        font-size: 1rem;
      }

      .library-search button {
        padding: 12px 24px;
        background: var(--sage-green);
        color: white;
        border: none;
        border-radius: 8px;
        cursor: pointer;
        font-weight: 500;
        transition: background 0.2s;
      }

      .library-search button:hover {
        background: var(--sage-green-hover);
      }

      .library-results {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
        gap: 24px;
        margin-bottom: 32px;
      }

      .library-summary-card {
        padding: 24px;
        background: var(--cream);
        border: 1px solid var(--mist);
        border-radius: 12px;
        transition: transform 0.2s, box-shadow 0.2s;
      }

      .library-summary-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
      }

      .library-summary-card h3 {
        font-family: var(--font-primary);
        font-size: 1.2rem;
        font-weight: 600;
        margin-bottom: 12px;
      }

      .library-summary-card h3 a {
        color: var(--charcoal);
        text-decoration: none;
        transition: color 0.2s;
      }

      .library-summary-card h3 a:hover {
        color: var(--sage-green);
      }

      .library-summary-preview {
        color: var(--stone);
        line-height: 1.6;
        margin-bottom: 16px;
        font-size: 0.95rem;
      }

      .library-summary-meta {
        display: flex;
        gap: 16px;
        font-size: 0.85rem;
        color: var(--stone);
        flex-wrap: wrap;
      }

      .library-summary-meta span {
        display: flex;
        align-items: center;
      }

      .library-platform {
        text-transform: capitalize;
      }

      .library-pagination {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 16px;
        margin-top: 32px;
      }

      .library-pagination button {
        padding: 10px 20px;
        background: var(--sage-green);
        color: white;
        border: none;
        border-radius: 8px;
        cursor: pointer;
        transition: background 0.2s;
      }

      .library-pagination button:hover {
        background: var(--sage-green-hover);
      }

      .library-pagination span {
        color: var(--stone);
      }

      .library-loading,
      .library-empty,
      .library-error {
        text-align: center;
        padding: 40px;
        color: var(--stone);
      }

      /* Library Tabs - Aligned with Breadcrumb Container - Refined for Spacing/Alignment */
      .library-tabs-container {
        padding: var(--space-6) 0;
        margin-bottom: var(--space-6);
        display: flex;
        justify-content: center; /* Center the entire tab row */
      }

      .library-tabs {
        display: flex;
        gap: var(--space-10); /* More relaxed spacing between tabs */
        border-bottom: 2px solid var(--mist); /* Slightly thicker base line */
        padding-bottom: 0;
        width: fit-content;
      }

      .library-tab {
        font-family: var(--font-primary);
        font-size: var(--text-base);
        font-weight: 500;
        letter-spacing: 0.03em; /* More editorial feel */
        color: var(--stone);
        background: none;
        border: none;
        padding: var(--space-4) var(--space-2); /* Vertical padding for click area, horizontal for breathability */
        cursor: pointer;
        position: relative;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        text-transform: uppercase; /* More formal/luxury feel */
        font-size: var(--text-xs); /* Smaller, uppercase is a luxury trope */
      }

      .library-tab:hover {
        color: var(--charcoal);
      }

      .library-tab--active {
        color: var(--charcoal);
        font-weight: 600;
      }

      .library-tab--active::after {
        content: "";
        position: absolute;
        bottom: -2px; /* Align with the 2px border-bottom */
        left: 0;
        right: 0;
        height: 2px;
        background: var(--sage-green);
        border-radius: 0;
      }

      /* Library Result Sections & Panels */
      .library-results-section {
        margin-top: var(--space-4);
        animation: fadeIn 0.4s ease-out;
      }

      .library-panel {
        display: none;
      }

      .library-panel--active {
        display: block;
      }

      /* Most Viewed List - HackerNews-style */

      .most-viewed-list {
        list-style: none;
        padding: 0;
        margin: 0;
        counter-reset: rank;
      }

      .most-viewed-item {
        display: flex;
        align-items: baseline;
        gap: var(--space-4);
        padding: var(--space-4) 0;
        border-bottom: 1px solid rgba(233, 229, 222, 0.6);
        transition: background 0.2s ease;
      }

      .most-viewed-item:last-child {
        border-bottom: none;
      }

      .most-viewed-item:hover {
        background: rgba(135, 168, 120, 0.04);
        margin-left: calc(-1 * var(--space-3));
        margin-right: calc(-1 * var(--space-3));
        padding-left: var(--space-3);
        padding-right: var(--space-3);
        border-radius: var(--space-2);
      }

      .most-viewed-rank {
        font-family: var(--font-primary);
        font-size: var(--text-lg);
        font-weight: 600;
        color: var(--sage-green);
        min-width: 2rem;
        text-align: right;
        opacity: 0.8;
      }

      .most-viewed-title {
        font-family: var(--font-primary);
        font-size: var(--text-md);
        font-weight: 500;
        color: var(--charcoal);
        text-decoration: none;
        line-height: var(--leading-snug);
        transition: color 0.2s ease;
      }

      .most-viewed-title:hover {
        color: var(--sage-green);
      }

      .most-viewed-loading,
      .most-viewed-empty,
      .most-viewed-error {
        padding: var(--space-6);
        color: var(--stone);
        font-size: var(--text-sm);
      }

      @media (max-width: 768px) {
        .library-header h1 {
          font-size: 2rem;
        }

        .library-results {
          grid-template-columns: 1fr;
        }

        .library-search {
          flex-direction: column;
        }

        .most-viewed-item {
          gap: var(--space-3);
        }

        .most-viewed-rank {
          font-size: var(--text-base);
          min-width: 1.5rem;
        }

        .most-viewed-title {
          font-size: var(--text-base);
        }
      }

      /* Search Results Styles */
      .search-results-section {
        max-width: 100%;
        margin: 0;
        padding: 0 0 var(--space-10) 0;
        animation: fadeIn 0.5s ease-out;
      }

      /* Compact, elegant search bar for search page */
      .search-bar-compact {
        margin-bottom: var(--space-6);
      }

      .search-bar-compact .search-input-wrapper {
        margin-bottom: 0;
      }

      .search-bar-compact .search-input-container {
        background: var(--warm-white);
        border: 2px solid var(--mist);
        border-radius: var(--space-3);
        padding: var(--space-1);
        box-shadow: 0 1px 3px var(--soft-shadow);
        transition: border-color 0.2s ease, box-shadow 0.2s ease;
      }

      .search-bar-compact .search-input-container:focus-within {
        border-color: var(--sage-green-light);
        box-shadow: 0 0 0 4px rgba(135, 168, 120, 0.1);
      }

      .search-bar-compact .search-input {
        border: none;
        background: transparent;
        padding: var(--space-3) var(--space-4);
        font-size: var(--text-md);
      }

      .search-bar-compact .search-input:focus {
        outline: none;
        box-shadow: none;
      }

      .search-bar-compact .search-btn {
        position: static;
        transform: none;
        padding: var(--space-3) var(--space-4);
        margin: 0;
      }

      .search-results-header {
        margin-bottom: var(--space-5);
        padding-top: var(--space-2);
      }

      .search-results-header h2 {
        font-family: var(--font-primary);
        font-size: var(--text-xl);
        font-weight: 600;
        color: var(--charcoal);
        margin-bottom: 0;
        letter-spacing: -0.01em;
      }

      .search-results-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
        gap: var(--space-5);
        margin-top: var(--space-4);
      }

      .search-result-card {
        background: var(--warm-white);
        border: 1px solid rgba(31, 29, 26, 0.05);
        border-radius: var(--space-4);
        overflow: hidden;
        cursor: pointer;
        transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
        display: flex;
        flex-direction: column;
        box-shadow: 0 2px 8px rgba(31, 29, 26, 0.04);
      }

      .search-result-card:hover {
        transform: translateY(-6px) scale(1.01);
        box-shadow: 
          0 4px 12px rgba(31, 29, 26, 0.06),
          0 16px 32px rgba(135, 168, 120, 0.1);
        border-color: rgba(135, 168, 120, 0.2);
      }

      .search-result-thumbnail {
        position: relative;
        width: 100%;
        padding-top: 56.25%; /* 16:9 aspect ratio */
        background: var(--mist);
        overflow: hidden;
      }

      .search-result-thumbnail img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

      .search-result-duration {
        position: absolute;
        bottom: var(--space-2);
        right: var(--space-2);
        background: rgba(0, 0, 0, 0.75);
        color: white;
        padding: var(--space-1) var(--space-2);
        border-radius: var(--space-2);
        font-size: var(--text-xs);
        font-weight: 500;
        font-family: var(--font-primary);
        backdrop-filter: blur(4px);
      }

      .search-result-info {
        padding: var(--space-4);
        flex: 1;
        display: flex;
        flex-direction: column;
      }

      .search-result-title {
        font-family: var(--font-primary);
        font-size: var(--text-base);
        font-weight: 600;
        color: var(--charcoal);
        margin: 0 0 var(--space-2) 0;
        line-height: 1.4;
        display: -webkit-box;
        line-clamp: 2;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
      }

      .search-result-channel {
        font-size: var(--text-md);
        color: var(--stone);
        margin: 0 0 var(--space-1) 0;
      }

      .search-result-meta {
        font-size: var(--text-xs);
        color: var(--stone);
        margin: 0;
        margin-top: auto;
      }

      .search-status {
        text-align: center;
        padding: var(--space-16) var(--space-5);
        color: var(--stone);
        display: none;
      }

      .search-status.visible {
        display: block;
      }

      .search-status-text {
        font-size: var(--text-lg);
        font-family: var(--font-primary);
        margin-bottom: var(--space-3);
        color: var(--charcoal);
      }

      .search-status-subtext {
        font-size: var(--text-sm);
        color: var(--stone);
      }

      .search-error {
        color: #d32f2f;
      }

      .search-error .search-status-text {
        color: #d32f2f;
      }

      @media (max-width: 768px) {
        body.search-page .container {
          padding: var(--space-10) var(--space-5);
        }

        .search-results-section {
          padding: 0;
        }

        .search-results-grid {
          grid-template-columns: 1fr;
          gap: var(--space-4);
        }

        .search-results-header h2 {
          font-size: var(--text-xl);
        }

        .search-bar-compact .search-input-container {
          flex-direction: row;
          padding: var(--space-1);
        }

        .search-bar-compact .search-input {
          padding: var(--space-4) var(--space-3);
          font-size: var(--text-base);
          min-height: var(--touch-target-min);
        }

        .search-bar-compact .search-btn {
          padding: var(--space-3) var(--space-4);
          min-height: var(--touch-target-min);
          min-width: var(--touch-target-min);
        }

        .search-bar-compact .search-btn svg {
          width: 18px;
          height: 18px;
        }

        .search-result-card {
          border-radius: 10px;
        }
      }

      /* ==============================================
         SUMMARY TYPOGRAPHY - IA: H2 section, H3 subsection, body (type scale)
         ============================================== */
      .summary-content {
        color: var(--charcoal);
        line-height: var(--leading-loose);
        font-size: var(--text-base);
        letter-spacing: 0.01em;
      }

      /* Section headers - H2 in content hierarchy */
      .summary-content h2 {
        font-family: var(--font-primary);
        font-size: var(--text-md);
        font-weight: 700;
        color: var(--sage-green);
        margin-top: var(--space-10);
        margin-bottom: var(--space-5);
        padding-bottom: var(--space-3);
        border-bottom: 2px solid var(--mist);
        text-transform: uppercase;
        letter-spacing: 0.1em;
      }

      .summary-content h2:first-child {
        margin-top: 0;
      }

      /* Subsection headers - H3 */
      .summary-content h3 {
        font-family: var(--font-primary);
        font-size: var(--text-lg);
        font-weight: 600;
        color: var(--charcoal);
        margin-top: var(--space-8);
        margin-bottom: var(--space-3);
        letter-spacing: -0.01em;
      }

      .summary-content h3:first-child {
        margin-top: 0;
      }

      .summary-content p {
        margin-bottom: var(--space-5);
        text-align: left;
      }

      .summary-content ul,
      .summary-content ol {
        margin: var(--space-5) 0;
        padding-left: var(--space-6);
      }

      .summary-content li {
        margin-bottom: var(--space-3);
        padding-left: var(--space-2);
        line-height: var(--leading-relaxed);
      }

      .summary-content li::marker {
        color: var(--sage-green);
        font-weight: 600;
      }

      .summary-content ol li::marker {
        color: var(--sage-green);
        font-weight: 700;
      }

      .summary-content strong {
        color: var(--charcoal);
        font-weight: 600;
      }

      .summary-content hr {
        border: none;
        height: 2px;
        background: linear-gradient(90deg, var(--mist) 0%, transparent 100%);
        margin: var(--space-8) 0;
      }

      .summary-content blockquote {
        border-left: 3px solid var(--sage-green);
        padding-left: var(--space-5);
        margin: var(--space-6) 0;
        color: var(--stone);
        font-style: italic;
        background: var(--blush);
        padding: var(--space-4) var(--space-5);
        border-radius: 0 var(--space-3) var(--space-3) 0;
      }

      .summary-content code {
        background: var(--blush);
        padding: 3px 8px;
        border-radius: 6px;
        font-size: 0.9em;
        color: var(--sage-green-hover);
      }

      /* ==============================================
         TRANSCRIPT TOGGLE - Expandable section
         ============================================== */
      .transcript-toggle {
        margin-top: var(--space-8);
        padding-top: var(--space-8);
        border-top: 2px solid var(--mist);
      }

      .toggle-btn {
        display: inline-flex;
        align-items: center;
        gap: var(--space-3);
        padding: var(--space-4) var(--space-5);
        font-family: var(--font-primary);
        font-size: var(--text-sm);
        font-weight: 500;
        color: var(--stone);
        background: var(--cream);
        border: 2px solid var(--mist);
        border-radius: var(--space-3);
        cursor: pointer;
        transition: all 0.25s ease;
      }

      .toggle-btn:hover {
        color: var(--charcoal);
        border-color: rgba(135, 168, 120, 0.3);
        background: var(--blush);
      }

      .toggle-btn svg {
        width: 16px;
        height: 16px;
        transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
      }

      .toggle-btn.active {
        border-color: var(--sage-green);
        color: var(--sage-green);
      }

      .toggle-btn.active svg {
        transform: rotate(180deg);
      }

      .transcript-content {
        margin-top: var(--space-5);
        padding: var(--space-6);
        background: var(--blush);
        border-radius: var(--space-4);
        font-size: var(--text-sm);
        color: var(--stone);
        line-height: var(--leading-relaxed);
        max-height: 240px;
        overflow-y: auto;
        display: none;
        border: 1px solid var(--mist);
      }

      .transcript-content.visible {
        display: block;
        animation: fadeIn 0.3s ease;
      }

      /* ==============================================
         FOOTER - Consistent, minimal, refined (SKILL: cohesive spacing)
         ============================================== */
      footer {
        text-align: center;
        padding-top: var(--space-14);
        padding-bottom: var(--space-8);
        margin-top: var(--space-12);
        border-top: 1px solid var(--mist);
        color: var(--stone);
        font-size: var(--text-sm);
      }

      .footer-tagline {
        margin: 0 0 var(--space-4) 0;
        font-size: var(--text-md);
        font-weight: 500;
        color: var(--charcoal);
        letter-spacing: 0.01em;
      }

      .footer-copyright {
        margin: var(--space-5) 0 0 0;
        font-size: var(--text-xs);
        color: var(--stone);
        opacity: 0.9;
      }

      footer a {
        color: var(--sage-green);
        text-decoration: none;
        transition: color 0.2s ease;
      }

      footer a:hover {
        color: var(--sage-green-hover);
        text-decoration: underline;
      }

      /* ==============================================
         MOBILE UX - SKILL: Responsiveness, intentional spacing, touch targets
         ============================================== */
      @media (max-width: 640px) {
        .container {
          padding: var(--space-10) max(var(--space-4), env(safe-area-inset-left));
          padding-bottom: max(var(--space-10), env(safe-area-inset-bottom));
        }
        body {
          font-size: var(--text-base);
        }
      }

      @media (max-width: 600px) {
        .container {
          padding-left: max(var(--space-4), env(safe-area-inset-left));
          padding-right: max(var(--space-4), env(safe-area-inset-right));
        }

        .logo {
          font-size: var(--text-4xl);
        }

        .input-section,
        .result-section {
          padding: var(--space-8) var(--space-5);
        }

        .input-tabs {
          gap: var(--space-1);
          margin-bottom: var(--space-5);
        }

        .input-tab {
          padding: var(--space-3) var(--space-4);
          font-size: var(--text-base);
          min-height: var(--touch-target-min);
          display: inline-flex;
          align-items: center;
        }

        .url-input {
          font-size: var(--text-base);
          min-height: var(--touch-target-min);
          padding: var(--space-4) var(--space-5);
        }

        .generate-btn {
          min-height: var(--touch-target-min);
          padding: var(--space-4) var(--space-8);
        }

        .search-btn {
          min-height: var(--touch-target-min);
          padding: var(--space-3) var(--space-4);
        }

        .video-title {
          font-size: var(--text-xl);
        }
      }

      /* Scrollbar styling */
      .transcript-content::-webkit-scrollbar {
        width: 6px;
      }

      .transcript-content::-webkit-scrollbar-track {
        background: transparent;
      }

      .transcript-content::-webkit-scrollbar-thumb {
        background: var(--mist);
        border-radius: 3px;
      }

      .transcript-content::-webkit-scrollbar-thumb:hover {
        background: var(--stone);
      }

      /* Content Sections - IA: supporting content below primary CTA */
      .content-sections {
        margin-bottom: var(--space-12);
      }

      .content-sections.hidden {
        display: none;
      }

      /* Summary layout only visible on summary pages (handled by Jinja2 conditional) */
      /* Content sections only visible on home page (handled by Jinja2 conditional) */
      /* Paste URL section only visible on home/summary pages (handled by Jinja2 conditional) */

      /* Footer Links - spacing scale per SKILL */
      .footer-links {
        margin: 0;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: var(--space-2) var(--space-3);
        font-size: var(--text-sm);
      }

      .footer-separator {
        color: var(--stone);
        opacity: 0.5;
        user-select: none;
      }

      .footer-links a {
        color: var(--sage-green);
        text-decoration: none;
        transition: color 0.2s ease;
      }

      .footer-links a:hover {
        color: var(--sage-green-hover);
        text-decoration: underline;
      }

      @media (max-width: 600px) {
        footer {
          padding-top: var(--space-12);
          padding-bottom: max(var(--space-6), env(safe-area-inset-bottom));
        }
        .footer-links {
          gap: var(--space-2) var(--space-3);
          font-size: var(--text-sm);
        }
        .footer-links a {
          padding: var(--space-2) var(--space-1);
          min-height: var(--touch-target-min);
          display: inline-flex;
          align-items: center;
        }
        .footer-tagline {
          font-size: var(--text-base);
          margin-bottom: var(--space-3);
        }
        .footer-copyright {
          margin-top: var(--space-4);
          font-size: var(--text-xs);
        }
      }

      /* ==============================================
         FEEDBACK BUTTON - Floating action
         ============================================== */
      .feedback-button {
        position: fixed;
        bottom: 28px;
        right: 28px;
        z-index: 1000;
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 14px 22px;
        background: var(--sage-green);
        color: white;
        border: none;
        border-radius: 50px;
        cursor: pointer;
        font-family: var(--font-primary);
        font-size: 0.9rem;
        font-weight: 600;
        letter-spacing: 0.02em;
        touch-action: manipulation;
        box-shadow: 
          0 2px 4px rgba(135, 168, 120, 0.2),
          0 8px 20px rgba(135, 168, 120, 0.25);
        transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
      }

      .feedback-button:hover {
        background: var(--sage-green-hover);
        transform: translateY(-4px) scale(1.02);
        box-shadow: 
          0 4px 8px rgba(135, 168, 120, 0.2),
          0 12px 28px rgba(135, 168, 120, 0.3);
      }

      .feedback-button:active {
        transform: translateY(-2px) scale(1);
      }

      .feedback-button svg {
        width: 18px;
        height: 18px;
      }

      .feedback-button-text {
        display: none;
      }

      @media (min-width: 640px) {
        .feedback-button-text {
          display: inline;
        }
      }

      @media (max-width: 768px) {
        .feedback-button {
          bottom: max(24px, env(safe-area-inset-bottom));
          right: max(24px, env(safe-area-inset-right));
          padding: var(--space-4);
          min-width: var(--touch-target-min);
          min-height: var(--touch-target-min);
          border-radius: 50%;
          display: flex;
          align-items: center;
          justify-content: center;
        }

        .feedback-button svg {
          width: 1.25rem;
          height: 1.25rem;
        }
      }

      /* ==============================================
         FEEDBACK MODAL - Clean dialog
         ============================================== */
      .feedback-modal {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 2000;
        display: none;
        align-items: center;
        justify-content: center;
        padding: var(--space-6);
        padding-left: max(var(--space-6), env(safe-area-inset-left));
        padding-right: max(var(--space-6), env(safe-area-inset-right));
        padding-bottom: max(var(--space-6), env(safe-area-inset-bottom));
      }

      .feedback-modal[aria-hidden="false"] {
        display: flex;
      }

      .feedback-modal-overlay {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(31, 29, 26, 0.4);
        backdrop-filter: blur(6px);
        animation: fadeIn 0.25s ease;
      }

      .feedback-modal-content {
        position: relative;
        background: var(--warm-white);
        border-radius: 24px;
        box-shadow: var(--shadow-elevated);
        max-width: 520px;
        width: 100%;
        max-height: 90vh;
        overflow-y: auto;
        animation: modalReveal 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
        border: 1px solid rgba(31, 29, 26, 0.05);
      }

      @keyframes modalReveal {
        from {
          opacity: 0;
          transform: translateY(24px) scale(0.96);
        }
        to {
          opacity: 1;
          transform: translateY(0) scale(1);
        }
      }

      .feedback-modal-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 28px 28px 22px 28px;
        border-bottom: 2px solid var(--mist);
      }

      .feedback-modal-title {
        font-family: var(--font-primary);
        font-size: 1.5rem;
        font-weight: 600;
        color: var(--charcoal);
        margin: 0;
        letter-spacing: -0.02em;
      }

      .feedback-modal-close {
        background: none;
        border: none;
        cursor: pointer;
        padding: var(--space-2);
        min-width: var(--touch-target-min);
        min-height: var(--touch-target-min);
        color: var(--stone);
        transition: all 0.2s ease;
        border-radius: var(--space-3);
        display: flex;
        align-items: center;
        justify-content: center;
        touch-action: manipulation;
      }

      .feedback-modal-close:hover {
        color: var(--charcoal);
        background: var(--blush);
      }

      .feedback-modal-close svg {
        width: 20px;
        height: 20px;
      }

      /* Quota Modal - Reusing/Extending Feedback Modal Styles */
      .quota-modal {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 2100; /* Higher than feedback modal */
        display: none;
        align-items: center;
        justify-content: center;
        padding: var(--space-5);
        padding-left: max(var(--space-5), env(safe-area-inset-left));
        padding-right: max(var(--space-5), env(safe-area-inset-right));
        padding-bottom: max(var(--space-5), env(safe-area-inset-bottom));
      }

      .quota-modal[aria-hidden="false"] {
        display: flex;
      }

      .quota-modal-overlay {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(61, 61, 61, 0.6);
        backdrop-filter: blur(4px);
        animation: fadeIn 0.2s ease;
      }

      .quota-modal-content {
        position: relative;
        background: var(--warm-white);
        border-radius: 16px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
        max-width: 450px;
        width: 100%;
        max-height: 90vh;
        overflow-y: auto;
        animation: slideUp 0.3s ease;
        border: 1px solid var(--mist);
        text-align: center;
      }

      .quota-modal-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 24px 24px 10px 24px;
      }

      .quota-modal-title {
        font-family: var(--font-primary);
        font-size: 1.5rem;
        font-weight: 600;
        color: var(--charcoal);
        margin: 0;
        text-align: left;
      }

      .quota-modal-close {
        background: none;
        border: none;
        cursor: pointer;
        padding: var(--space-2);
        min-width: var(--touch-target-min);
        min-height: var(--touch-target-min);
        color: var(--stone);
        transition: color 0.2s, background 0.2s;
        border-radius: var(--space-2);
        display: flex;
        align-items: center;
        justify-content: center;
        touch-action: manipulation;
      }

      .quota-modal-close:hover {
        color: var(--charcoal);
        background: var(--mist);
      }

      .quota-modal-close svg {
        width: 20px;
        height: 20px;
      }

      @media (max-width: 640px) {
        .quota-modal {
          padding: var(--space-4);
          padding-bottom: max(var(--space-4), env(safe-area-inset-bottom));
          align-items: flex-end;
        }
        .quota-modal-content {
          max-width: 100%;
          width: 100%;
          border-radius: var(--space-6) var(--space-6) 0 0;
          max-height: min(90vh, calc(100vh - env(safe-area-inset-top) - var(--space-8)));
          -webkit-overflow-scrolling: touch;
        }
      }

      .quota-modal-body {
        padding: 10px 32px 32px 32px;
      }

      .quota-icon-wrapper {
        margin: 10px auto 20px auto;
        width: 64px;
        height: 64px;
        border-radius: 50%;
        background: rgba(245, 158, 11, 0.1);
        display: flex;
        align-items: center;
        justify-content: center;
        color: #f59e0b;
      }

      .quota-message {
        font-family: var(--font-primary);
        color: var(--stone);
        font-size: 1.05rem;
        line-height: 1.6;
        margin-bottom: 24px;
      }

      .quota-actions {
        display: flex;
        flex-direction: column;
        gap: 12px;
      }

      .quota-upgrade-btn {
        width: 100%;
        justify-content: center;
        font-weight: 600;
        padding: 12px 24px;
      }

      .quota-cancel-btn {
        width: 100%;
        background: transparent;
        color: var(--stone);
        border: 1px solid transparent;
        font-size: 0.95rem;
      }

      .quota-cancel-btn:hover {
        color: var(--charcoal);
        background: var(--mist);
      }

      .feedback-form {
        padding: 28px;
      }

      .feedback-form-group {
        margin-bottom: 24px;
      }

      .feedback-label {
        display: block;
        font-family: var(--font-primary);
        font-size: 0.95rem;
        font-weight: 600;
        color: var(--charcoal);
        margin-bottom: 10px;
      }

      .feedback-textarea,
      .feedback-input {
        width: 100%;
        padding: 14px 18px;
        font-family: var(--font-primary);
        font-size: 0.95rem;
        border: 2px solid var(--mist);
        border-radius: 12px;
        background: var(--cream);
        color: var(--charcoal);
        transition: all 0.25s ease;
        resize: vertical;
      }

      .feedback-textarea {
        min-height: 130px;
      }

      .feedback-textarea:focus,
      .feedback-input:focus {
        outline: none;
        border-color: var(--sage-green);
        background: var(--warm-white);
        box-shadow: var(--shadow-glow);
      }

      .feedback-char-count {
        text-align: right;
        font-size: 0.82rem;
        color: var(--stone);
        margin-top: 6px;
      }

      .feedback-hint {
        font-size: 0.85rem;
        color: var(--stone);
        margin-top: 8px;
        margin-bottom: 0;
      }

      .feedback-form-actions {
        display: flex;
        gap: 14px;
        justify-content: flex-end;
        margin-top: 32px;
      }

      .feedback-btn-cancel,
      .feedback-btn-submit {
        padding: 14px 26px;
        font-family: var(--font-primary);
        font-size: 0.95rem;
        font-weight: 600;
        border-radius: 12px;
        cursor: pointer;
        transition: all 0.25s ease;
        border: none;
      }

      .feedback-btn-cancel {
        background: var(--mist);
        color: var(--charcoal);
      }

      .feedback-btn-cancel:hover {
        background: var(--stone);
        color: white;
      }

      .feedback-btn-submit {
        background: var(--sage-green);
        color: white;
        display: flex;
        align-items: center;
        gap: 10px;
        box-shadow: 0 2px 8px rgba(135, 168, 120, 0.2);
      }

      .feedback-btn-submit:hover:not(:disabled) {
        background: var(--sage-green-hover);
        transform: translateY(-2px);
        box-shadow: 0 4px 16px rgba(135, 168, 120, 0.3);
      }

      .feedback-btn-submit:disabled {
        opacity: 0.7;
        cursor: not-allowed;
      }

      .feedback-spinner {
        width: 16px;
        height: 16px;
        animation: spin 0.8s linear infinite;
      }

      /* Toast Notification */
      .feedback-toast {
        position: fixed;
        bottom: 100px;
        right: 24px;
        z-index: 3000;
        display: none;
        animation: slideInRight 0.3s ease;
      }

      .feedback-toast.visible {
        display: block;
      }

      @keyframes slideInRight {
        from {
          opacity: 0;
          transform: translateX(100%);
        }
        to {
          opacity: 1;
          transform: translateX(0);
        }
      }

      .feedback-toast-content {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 16px 20px;
        background: var(--warm-white);
        border: 1px solid var(--sage-green-light);
        border-radius: 12px;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
        min-width: 280px;
      }

      .feedback-toast-icon {
        width: 20px;
        height: 20px;
        color: var(--sage-green);
        flex-shrink: 0;
      }

      .feedback-toast-message {
        font-family: var(--font-primary);
        font-size: 0.95rem;
        color: var(--charcoal);
      }

      @media (max-width: 768px) {
        .feedback-modal {
          padding: var(--space-4);
          padding-bottom: max(var(--space-4), env(safe-area-inset-bottom));
          align-items: flex-end;
        }

        .feedback-modal-content {
          max-width: 100%;
          width: 100%;
          margin: 0;
          border-radius: var(--space-6) var(--space-6) 0 0;
          max-height: min(85vh, calc(100vh - env(safe-area-inset-top) - var(--space-8)));
          overflow-y: auto;
          -webkit-overflow-scrolling: touch;
        }

        .feedback-toast {
          right: max(var(--space-5), env(safe-area-inset-right));
          left: max(var(--space-5), env(safe-area-inset-left));
          bottom: max(5.5rem, calc(env(safe-area-inset-bottom) + 3rem));
        }

        .feedback-toast-content {
          min-width: auto;
        }
      }

      /* ==============================================
         CONTENT SECTIONS - Floating paper cards
         ============================================== */
      .content-section {
        background: var(--warm-white);
        border-radius: var(--space-6);
        padding: var(--space-12);
        box-shadow: var(--shadow-float);
        border: 1px solid rgba(31, 29, 26, 0.03);
        margin-bottom: var(--space-8);
      }

      .content-section h2 {
        font-family: var(--font-primary);
        font-size: var(--text-2xl);
        font-weight: 600;
        color: var(--charcoal);
        margin-bottom: var(--space-5);
        text-align: center;
        letter-spacing: -0.02em;
      }

      /* Steps - numbered workflow (IA: H2 → steps) */
      .how-it-works-steps {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        gap: var(--space-6);
        margin-top: var(--space-8);
      }

      .step {
        text-align: center;
        padding: var(--space-8) var(--space-6);
        background: var(--cream);
        border-radius: var(--space-5);
        border: 1px solid var(--mist);
        transition: all 0.3s ease;
      }

      .step:hover {
        background: var(--blush);
        transform: translateY(-4px);
        box-shadow: 0 8px 24px rgba(31, 29, 26, 0.06);
      }

      .step-number {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 3.25rem;
        height: 3.25rem;
        border-radius: 50%;
        background: var(--sage-green);
        color: white;
        font-size: var(--text-xl);
        font-weight: 700;
        margin-bottom: var(--space-5);
        box-shadow: 0 4px 12px rgba(135, 168, 120, 0.25);
      }

      .step h3 {
        font-family: var(--font-primary);
        font-size: var(--text-lg);
        font-weight: 600;
        color: var(--charcoal);
        margin-bottom: var(--space-3);
        letter-spacing: -0.01em;
      }

      .step p {
        font-size: var(--text-sm);
        color: var(--stone);
        line-height: var(--leading-relaxed);
        margin: 0;
      }

      /* Feature cards */
      .features-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: var(--space-5);
        margin-top: var(--space-8);
      }

      .feature {
        padding: var(--space-8);
        background: var(--cream);
        border-radius: var(--space-5);
        border: 1px solid var(--mist);
        transition: all 0.3s ease;
      }

      .feature:hover {
        background: var(--blush);
        transform: translateY(-3px);
        border-color: rgba(135, 168, 120, 0.15);
      }

      .feature-icon {
        font-size: 2.2rem;
        line-height: 1.2;
        margin-bottom: var(--space-4);
        display: block;
        height: auto;
        min-height: 2.5rem;
      }

      .feature h3 {
        font-family: var(--font-primary);
        font-size: var(--text-lg);
        font-weight: 600;
        color: var(--charcoal);
        margin-bottom: var(--space-3);
        letter-spacing: -0.01em;
      }

      .feature p {
        font-size: var(--text-sm);
        color: var(--stone);
        line-height: var(--leading-relaxed);
        margin: 0;
      }

      /* Stats - bold numbers */
      .stats-section {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
        gap: var(--space-5);
        margin-top: var(--space-8);
      }

      .stat {
        text-align: center;
        padding: var(--space-8) var(--space-5);
        background: var(--cream);
        border-radius: var(--space-5);
        border: 1px solid var(--mist);
        transition: all 0.3s ease;
      }

      .stat:hover {
        background: var(--blush);
        transform: translateY(-2px);
      }

      .stat-number {
        font-family: var(--font-primary);
        font-size: var(--text-display);
        font-weight: 700;
        color: var(--sage-green);
        margin-bottom: var(--space-2);
        display: block;
        letter-spacing: -0.03em;
      }

      .stat-label {
        font-size: var(--text-md);
        color: var(--stone);
        text-transform: uppercase;
        letter-spacing: 0.08em;
        font-weight: 500;
      }

      /* Responsive - mobile UX: intentional spacing, touch-friendly */
      @media (max-width: 768px) {
        .content-section {
          padding: var(--space-8) var(--space-6);
          border-radius: var(--space-5);
        }

        .content-section h2 {
          font-size: var(--text-xl);
        }

        .how-it-works-steps,
        .features-grid {
          grid-template-columns: 1fr;
          gap: var(--space-4);
        }

        .step,
        .feature {
          padding: var(--space-6) var(--space-5);
        }

        .stats-section {
          grid-template-columns: repeat(2, 1fr);
          gap: var(--space-4);
        }

        .stat {
          padding: var(--space-6) var(--space-4);
        }
      }

      @media (max-width: 480px) {
        .stats-section {
          grid-template-columns: 1fr;
        }
      }

      /* ==============================================
         BREADCRUMBS - SKILL: intentional region, hierarchy, accessibility
         IA: context trail below primary nav (nav → trail → content)
         ============================================== */
      .breadcrumbs {
        margin-bottom: var(--space-6);
        padding: var(--space-4) 0;
        font-size: var(--text-sm);
        line-height: var(--leading-snug);
        border-bottom: 1px solid var(--mist);
        color: var(--stone);
      }

      .breadcrumbs ol {
        list-style: none;
        padding: 0;
        margin: 0;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0 var(--space-2);
      }

      .breadcrumbs li {
        display: flex;
        align-items: center;
        color: var(--stone);
      }

      .breadcrumbs li:not(:last-child)::after {
        content: "›";
        margin-left: var(--space-2);
        color: var(--stone);
        opacity: 0.5;
        font-weight: 400;
        user-select: none;
      }

      .breadcrumbs a {
        color: var(--sage-green);
        text-decoration: none;
        transition: color 0.2s ease;
        padding: var(--space-1) 0;
        border-radius: var(--space-1);
      }

      .breadcrumbs a:hover {
        color: var(--sage-green-hover);
        text-decoration: underline;
      }

      .breadcrumbs a:focus-visible {
        outline: none;
        box-shadow: var(--shadow-glow), 0 0 0 1px var(--sage-green);
      }

      .breadcrumbs [aria-current="page"] {
        color: var(--charcoal);
        font-weight: 600;
        letter-spacing: 0.01em;
      }

      @media (max-width: 600px) {
        .breadcrumbs {
          padding: var(--space-3) 0;
          margin-bottom: var(--space-4);
          font-size: var(--text-xs);
        }
        .breadcrumbs ol {
          gap: 0 var(--space-2);
        }
      }

      /* ==============================================
         FAQ SECTION - Accordion with polish
         ============================================== */
      .faq-section {
        background: var(--warm-white);
        border-radius: var(--space-6);
        padding: var(--space-12);
        box-shadow: var(--shadow-float);
        border: 1px solid rgba(31, 29, 26, 0.03);
        margin-bottom: var(--space-8);
      }

      .faq-section h2 {
        font-family: var(--font-primary);
        font-size: var(--text-2xl);
        font-weight: 600;
        color: var(--charcoal);
        margin-bottom: var(--space-8);
        text-align: center;
        letter-spacing: -0.02em;
      }

      .faq-list {
        display: flex;
        flex-direction: column;
        gap: var(--space-4);
        max-width: 50rem;
        margin: 0 auto;
      }

      .faq-item {
        background: var(--cream);
        border-radius: var(--space-4);
        border: 1px solid var(--mist);
        overflow: hidden;
        transition: all 0.3s ease;
      }

      .faq-item:hover {
        border-color: rgba(135, 168, 120, 0.25);
        box-shadow: 0 4px 12px rgba(135, 168, 120, 0.08);
      }

      .faq-question {
        padding: var(--space-5) var(--space-6);
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        user-select: none;
        transition: background 0.2s;
      }

      .faq-question:hover {
        background: rgba(135, 168, 120, 0.04);
      }

      .faq-question h3 {
        font-family: var(--font-primary);
        font-size: var(--text-md);
        font-weight: 600;
        color: var(--charcoal);
        margin: 0;
        flex: 1;
        letter-spacing: -0.01em;
      }

      .faq-toggle {
        width: 1.75rem;
        height: 1.75rem;
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--sage-green);
        font-size: var(--text-base);
        transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
        flex-shrink: 0;
        margin-left: var(--space-4);
        background: rgba(135, 168, 120, 0.08);
        border-radius: 50%;
      }

      .faq-item.active .faq-toggle {
        transform: rotate(180deg);
        background: var(--sage-green);
        color: white;
      }

      .faq-answer {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.35s ease, padding 0.35s ease;
        padding: 0 var(--space-6);
      }

      .faq-item.active .faq-answer {
        max-height: 500px;
        padding: 0 var(--space-6) var(--space-6) var(--space-6);
      }

      .faq-answer p {
        color: var(--stone);
        line-height: var(--leading-relaxed);
        margin: 0;
        font-size: var(--text-md);
      }

      @media (max-width: 768px) {
        .faq-section {
          padding: var(--space-8) var(--space-6);
        }

        .faq-question {
          padding: var(--space-5) var(--space-5);
        }

        .faq-question h3 {
          font-size: var(--text-base);
        }

        .faq-answer {
          padding: 0 var(--space-5);
        }

        .faq-item.active .faq-answer {
         padding: 0 var(--space-5) var(--space-5) var(--space-5);
        }
      }
      /* ==============================================
         NAVIGATION - Top nav bar (logo left, nav right)
         ============================================== */
      /* ==============================================
   Navigation Buttons & Toggles
   ============================================== */
.nav-icon-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--charcoal);
    padding: var(--space-2);
    border-radius: 50%;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.nav-icon-btn:hover {
    background-color: rgba(135, 168, 120, 0.1);
    color: var(--sage-green);
}

/* ==============================================
   Music Toggle Button
   ============================================== */
#music-toggle {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--charcoal);
    padding: var(--space-2);
    border-radius: 50%;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: var(--space-4);
}

#music-toggle:hover {
    background-color: rgba(135, 168, 120, 0.1); /* sage-green with opacity */
    color: var(--sage-green);
    transform: scale(1.05);
}

#music-toggle svg {
    width: 20px;
    height: 20px;
    stroke-width: 2px;
}

/* Icon Toggling Logic */
#music-toggle .icon-muted { display: none; }
#music-toggle .icon-playing { display: block; }

#music-toggle.muted .icon-playing { display: none; }
#music-toggle.muted .icon-muted { display: block; }

#music-toggle.muted {
    opacity: 0.7;
}

/* Ensure audio persistence container functionality */
#audio-persistence {
    display: none;
}

      /* ==============================================
         NAVIGATION - Top nav bar (Transparent, Anchored)
         ============================================== */
      .site-header {
        width: 100%;
        display: flex;
        justify-content: flex-end;
        align-items: center;
        padding: var(--space-6) 0;
        margin-bottom: var(--space-8);
      }

      header nav,
      nav.site-nav {
        margin: 0;
        display: flex;
        justify-content: flex-end;
        align-items: center;
        gap: 4px;
        background: transparent;
        backdrop-filter: none;
        box-shadow: none;
        border: none;
        padding: 0;
        max-width: none;
      }

      nav a,
      header nav a {
        color: var(--stone);
        text-decoration: none;
        padding: var(--space-2) var(--space-5);
        font-size: var(--text-sm);
        font-weight: 500;
        border-radius: var(--space-3);
        transition: all 0.25s ease;
        position: relative;
        white-space: nowrap;
      }

      nav a:hover,
      header nav a:hover {
        color: var(--charcoal);
        background: rgba(135, 168, 120, 0.06);
      }

      nav a.active,
      header nav a.active {
        color: var(--sage-green);
        background: rgba(135, 168, 120, 0.1);
        font-weight: 600;
      }

      /* Mobile: nav bar full width (centered), hero stays centered */
      @media (max-width: 640px) {
        .header-nav-bar {
          justify-content: center;
          margin-bottom: var(--space-6);
        }

        header nav.site-nav {
          width: 100%;
          max-width: 100%;
          justify-content: center;
          flex-wrap: wrap;
          gap: var(--space-1);
          padding: var(--space-2);
        }

        header nav a,
        nav.site-nav a {
          padding: var(--space-3) var(--space-4);
          font-size: var(--text-sm);
          min-height: var(--touch-target-min);
          display: inline-flex;
          align-items: center;
        }
      }

      /* Logout button in nav */
      .nav-logout-form {
        display: inline;
        margin: 0;
        padding: 0;
      }

      .nav-logout-btn {
        color: var(--stone);
        background: none;
        border: none;
        padding: var(--space-2) var(--space-5);
        font-size: var(--text-sm);
        font-weight: 500;
        font-family: var(--font-primary);
        border-radius: var(--space-3);
        cursor: pointer;
        transition: all 0.25s ease;
      }

      .nav-logout-btn:hover {
        color: var(--charcoal);
        background: rgba(135, 168, 120, 0.06);
      }

      .nav-user {
        font-weight: 600;
        color: var(--sage-green);
      }

      @media (max-width: 640px) {
        .nav-logout-btn {
          padding: var(--space-3) var(--space-4);
          font-size: var(--text-sm);
          min-height: var(--touch-target-min);
          display: inline-flex;
          align-items: center;
        }
      }



/* ==============================================
   PRICING TABLE - Premium Comparison
   ============================================== */
.pricing-table-container {
  overflow-x: auto;
  margin-bottom: var(--space-12);
  border-radius: var(--space-5);
  box-shadow: var(--shadow-float);
  background: var(--warm-white);
  border: 1px solid rgba(139, 134, 128, 0.08);
  /* Smooth scroll for mobile */
  -webkit-overflow-scrolling: touch; 
}

.pricing-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 600px; /* Ensure logical width on mobile */
  text-align: left;
}

/* Header Cells */
.pricing-table thead th {
  padding: var(--space-6) var(--space-4);
  vertical-align: bottom;
  position: relative;
  background: var(--warm-white);
}

.feature-header {
  width: 25%;
  color: var(--stone);
  font-size: var(--text-sm);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: 2px solid var(--mist);
}

.plan-header {
  width: 25%;
  text-align: center;
  border-bottom: 2px solid var(--mist);
  transition: background-color 0.2s ease;
}

/* Highlight recommended plan column */
.plan-header.recommended {
  background: rgba(135, 168, 120, 0.04);
  border-bottom-color: var(--sage-green);
}

.recommended-badge {
  display: inline-block;
  background: var(--sage-green);
  color: white;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: var(--space-3);
}

.plan-header .plan-name {
  font-size: var(--text-xl);
  font-weight: 600;
  color: var(--charcoal);
  margin-bottom: var(--space-2);
}

.plan-header .plan-price {
  margin-bottom: var(--space-4);
  color: var(--charcoal);
  height: 60px; /* Fixed height for alignment */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.plan-header .price-amount {
  font-size: var(--text-2xl);
  font-weight: 700;
  line-height: 1;
}

.plan-header .price-period {
  font-size: var(--text-sm);
  color: var(--stone);
  margin-top: 4px;
}

.plan-header .plan-cta {
  margin-top: var(--space-2);
}

.plan-cta .cta-button {
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-sm);
  width: 100%;
  max-width: 160px;
}

/* Body Cells */
.pricing-table tbody th,
.pricing-table tbody td {
  padding: var(--space-5) var(--space-4);
  border-bottom: 1px solid rgba(139, 134, 128, 0.1);
}

.pricing-table tbody tr:last-child th,
.pricing-table tbody tr:last-child td {
  border-bottom: none;
}

/* Feature Labels (Left Column) */
.feature-label {
  font-weight: 500;
  color: var(--charcoal);
  font-size: var(--text-base);
}

.feature-tooltip {
  display: block;
  font-size: var(--text-xs);
  color: var(--stone);
  font-weight: 400;
  margin-top: 4px;
}

/* Feature Values */
.feature-cell {
  text-align: center;
  color: var(--charcoal);
  font-size: var(--text-base);
}

.feature-cell strong {
  font-weight: 600;
  color: var(--sage-green);
}

/* Icons */
.icon-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: var(--sage-green);
  background: rgba(135, 168, 120, 0.1);
  border-radius: 50%;
}

.icon-check svg {
  width: 14px;
  height: 14px;
}

.icon-cross {
  color: var(--stone);
  font-size: 1.2rem;
  opacity: 0.5;
}

/* Hover effects for rows */
.pricing-table tbody tr:hover td,
.pricing-table tbody tr:hover th {
  background: rgba(139, 134, 128, 0.03);
}

/* Responsive */
@media (max-width: 768px) {
  .pricing-table-container {
    box-shadow: var(--shadow-elevated);
    margin: 0 -24px; /* Bleed to edges on mobile */
    border-radius: 0;
    border-left: none;
    border-right: none;
  }
  
  .pricing-table th:first-child,
  .pricing-table td:first-child {
    position: sticky;
    left: 0;
    background: var(--warm-white);
    z-index: 10;
    box-shadow: 2px 0 5px rgba(0,0,0,0.05); /* Shadow to indicate scroll */
  }
}
/* ==============================================
   PRICING PAGE - Premium organic tiered layout
   ============================================== */

/* ======================================== */
/* PRICING PAGE STYLES                      */
/* ======================================== */

/* Pricing page container - wider to fit 3 cards */
body.pricing-page .container {
  max-width: 1040px;
  padding: var(--space-14) var(--space-8);
}

/* All major sections should be full width and centered */
body.pricing-page .container > * {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

/* Header should span full container width for nav */
body.pricing-page .container > header {
  max-width: 100%;
}

/* Wrapper for specific pricing page spacing */
.pricing-layout {
  display: flex;
  flex-direction: column;
  gap: var(--space-10);
  max-width: 960px;
  margin: 0 auto;
  padding: 0 var(--space-4);
}

/* Page Header - Centered, clean typography */
.pricing-header {
  text-align: center;
  max-width: 600px;
  margin: 0 auto var(--space-12);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.pricing-title {
  font-family: var(--font-primary);
  font-size: var(--text-4xl);
  font-weight: 600;
  color: var(--charcoal);
  letter-spacing: -0.02em;
  margin: 0;
}

.pricing-subtitle {
  font-size: var(--text-lg);
  color: var(--stone);
  line-height: var(--leading-relaxed);
  margin: 0;
}

/* Pricing Grid - Responsive 3-column layout */
.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
  align-items: stretch;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}

/* Pricing Card - The core component */
.pricing-card {
  background: var(--warm-white);
  border-radius: var(--space-5);
  padding: var(--space-10) var(--space-8);
  display: flex;
  flex-direction: column;
  position: relative;
  transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  border: 1px solid rgba(31, 29, 26, 0.06);
  min-width: 280px;
  
  /* Initial state: floating slightly */
  box-shadow: 
    0 4px 6px -1px rgba(31, 29, 26, 0.02),
    0 2px 4px -1px rgba(31, 29, 26, 0.02);
}

.pricing-card:hover {
  transform: translateY(-8px);
  box-shadow: 
    0 20px 25px -5px rgba(31, 29, 26, 0.05),
    0 10px 10px -5px rgba(31, 29, 26, 0.02);
  border-color: rgba(135, 168, 120, 0.2);
}

/* Recommended Card Variant */
.pricing-card.recommended {
  border: 2px solid var(--sage-green);
  background: linear-gradient(to bottom, #ffffff, var(--warm-white));
  box-shadow: 
    0 10px 15px -3px rgba(135, 168, 120, 0.1),
    0 4px 6px -2px rgba(135, 168, 120, 0.05);
  transform: scale(1.02);
  z-index: 10;
}

.pricing-card.recommended:hover {
  transform: scale(1.02) translateY(-8px);
}

.recommended-badge {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--sage-green);
  color: white;
  font-size: var(--text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 6px 16px;
  border-radius: 999px;
  box-shadow: 0 4px 6px rgba(135, 168, 120, 0.2);
}

/* Card Content Typography */
.plan-name {
  font-size: var(--text-xl);
  font-weight: 600;
  color: var(--charcoal);
  margin-bottom: var(--space-2);
  text-align: center;
}

.plan-price-wrapper {
  text-align: center;
  margin-bottom: var(--space-6);
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
}

.plan-price {
  font-size: var(--text-4xl);
  font-weight: 700;
  color: var(--charcoal);
  letter-spacing: -0.03em;
  line-height: 1;
}

.plan-period {
  font-size: var(--text-sm);
  color: var(--stone);
  font-weight: 500;
}

.plan-description {
  font-size: var(--text-sm);
  color: var(--stone);
  text-align: center;
  margin-bottom: var(--space-6);
  min-height: 3em; /* Align buttons */
}

/* Features List */
.features-list {
  list-style: none;
  margin: var(--space-6) 0 0 0;
  padding: 0;
  border-top: 1px solid var(--mist);
  padding-top: var(--space-6);
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.feature-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  font-size: var(--text-sm);
  color: var(--charcoal);
  line-height: var(--leading-snug);
}

.feature-icon {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  color: var(--sage-green);
  margin-top: 1px;
}

.feature-item.disabled {
  color: var(--stone);
  opacity: 0.7;
}

.feature-icon.disabled {
  color: var(--mist);
}

/* CTA Button in Card */
.pricing-btn {
  width: 100%;
  padding: var(--space-4) var(--space-6);
  border-radius: var(--space-3);
  font-size: var(--text-base);
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
  border: none;
  display: block;
  min-height: 48px;
  line-height: 1.5;
}

.plan-cta-wrapper {
  margin-top: auto;
  padding-top: var(--space-6);
}

.pricing-btn.primary {
  background: var(--sage-green);
  color: white;
  box-shadow: 0 4px 6px rgba(135, 168, 120, 0.15);
}

.pricing-btn.primary:hover {
  background: var(--sage-green-hover);
  transform: translateY(-1px);
  box-shadow: 0 6px 12px rgba(135, 168, 120, 0.25);
}

.pricing-btn.secondary {
  background: var(--cream);
  color: var(--sage-green);
  border: 1px solid var(--sage-green); /* Thinner border */
}

.pricing-btn.secondary:hover {
  background: var(--sage-green); /* Fill on hover for cleaner interaction */
  color: white;
}

.pricing-btn.free {
  background: var(--mist);
  color: var(--charcoal);
}

.pricing-btn.free:hover {
  background: var(--stone);
  color: white;
}

/* Mobile Responsiveness */
@media (max-width: 900px) {
  .pricing-grid {
    grid-template-columns: 1fr; /* Stack vertically */
    max-width: 500px;
    margin: 0 auto;
    gap: var(--space-8);
  }

  .pricing-card.recommended {
    transform: none; /* Reset distinct style for mobile flow */
    order: -1; /* Show recommended first on mobile */
  }
}

/* Page Header for Pricing */
.page-header {
  margin-bottom: var(--space-10);
  text-align: center;
}

.page-header h1 {
  font-size: var(--text-4xl);
  font-weight: 600;
  color: var(--charcoal);
  line-height: var(--leading-tight);
  margin-bottom: var(--space-4);
}

.page-header p {
  font-size: var(--text-lg);
  color: var(--stone);
  line-height: var(--leading-relaxed);
  max-width: 600px;
  margin: 0 auto;
}

/* CTA Section - Bottom of Pricing Page */
.cta-section {
  background: linear-gradient(135deg, rgba(135, 168, 120, 0.08) 0%, rgba(181, 203, 183, 0.08) 100%);
  border-radius: var(--space-5);
  padding: var(--space-12) var(--space-8);
  text-align: center;
  margin: var(--space-12) 0;
  border: 1px solid rgba(135, 168, 120, 0.15);
}

.cta-section h2 {
  font-size: var(--text-3xl);
  font-weight: 600;
  color: var(--charcoal);
  margin-bottom: var(--space-4);
}

.cta-section p {
  font-size: var(--text-lg);
  color: var(--stone);
  margin-bottom: var(--space-6);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.cta-section .cta-button {
  display: inline-block;
  width: auto;
  padding: var(--space-4) var(--space-8);
  background: var(--sage-green);
  color: white;
  border: none;
  border-radius: var(--space-3);
  font-size: var(--text-base);
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
}

.cta-section .cta-button:hover {
  background: var(--sage-green-hover);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(135, 168, 120, 0.3);
}

/* Test Mode Banner */
.test-mode-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-6);
  background: rgba(139, 134, 128, 0.1);
  border: 1px solid rgba(139, 134, 128, 0.15);
  border-radius: var(--space-3);
  font-size: var(--text-sm);
  color: var(--stone);
}

.test-mode-banner a {
  color: var(--sage-green);
  font-weight: 500;
  text-decoration: none;
}

.test-mode-banner a:hover {
  text-decoration: underline;
}

.test-mode-banner__icon {
  font-size: var(--text-base);
}

/* Email Input Row */
.receipt-email-row {
  max-width: 400px;
  margin: 0 auto var(--space-8);
}

.receipt-email-label {
  display: block;
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--charcoal);
  margin-bottom: var(--space-2);
}

.receipt-email-input {
  width: 100%;
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-base);
  font-family: var(--font-primary);
  border: 1px solid var(--mist);
  border-radius: var(--space-3);
  box-sizing: border-box;
  background: var(--warm-white);
}

.receipt-email-input:focus {
  outline: none;
  border-color: var(--sage-green);
  box-shadow: var(--shadow-glow);
}

.receipt-email-hint {
  display: block;
  font-size: var(--text-xs);
  color: var(--stone);
  margin-top: var(--space-2);
}

.receipt-email-error {
  display: block;
  font-size: var(--text-xs);
  color: #c45c4a;
  margin-top: var(--space-2);
}

.receipt-email-input.error {
  border-color: #c45c4a;
}

.required {
  color: #c45c4a;
}

/* Payment Toasts */
.payment-toast {
  position: fixed;
  bottom: var(--space-6);
  left: 50%;
  transform: translateX(-50%);
  padding: var(--space-4) var(--space-6);
  border-radius: var(--space-3);
  font-size: var(--text-sm);
  font-weight: 500;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  z-index: 1000;
  max-width: 90%;
}

.payment-toast.success {
  background: var(--sage-green);
  color: white;
}

.payment-toast.error {
  background: #c45c4a;
  color: white;
}

/* Share Button */
.share-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background-color: white;
  color: var(--charcoal);
  border: 1px solid var(--sage-green);
  padding: 8px 16px;
  border-radius: 20px;
  font-family: 'Lexend', sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.share-btn:hover {
  background-color: var(--sage-green-light);
  transform: translateY(-1px);
  box-shadow: 0 4px 6px rgba(0,0,0,0.08);
}

.share-btn:active {
  transform: translateY(0);
}

.share-btn svg {
  width: 18px;
  height: 18px;
  stroke: var(--sage-green);
}

.share-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

.share-status {
  margin-left: 12px;
  font-size: 0.9rem;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.share-status.success {
  color: var(--sage-green);
}

.share-status.error {
  color: #ef4444;
}

/* Spinner for share button */
.spinner-small {
  width: 14px;
  height: 14px;
  border: 2px solid rgba(135, 168, 120, 0.3);
  border-radius: 50%;
  border-top-color: var(--sage-green);
  animation: spin 1s linear infinite;
  display: inline-block;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.summary-actions {
  display: flex;
  align-items: center;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--mist);
  justify-content: space-between;
  gap: 16px;
}

/* Public Toggle Switch */
.public-toggle-wrapper {
  display: flex;
  align-items: center;
  gap: 12px;
}

.switch-toggle {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
  margin-bottom: 0;
}

.switch-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--mist);
  transition: .4s;
  border-radius: 34px;
}

.slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: .4s;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

input:checked + .slider {
  background-color: var(--sage-green);
}

input:focus + .slider {
  box-shadow: 0 0 1px var(--sage-green);
}

input:checked + .slider:before {
  transform: translateX(20px);
}

.toggle-label {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--charcoal);
  user-select: none;
  cursor: pointer;
}

.action-divider {
  flex: 1;
}

/* Share button adjustments */
.share-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background-color: transparent;
  border: 1px solid var(--mist);
  border-radius: 8px;
  font-family: var(--font-primary);
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--stone);
  cursor: pointer;
  transition: all 0.2s ease;
}

.share-btn:hover {
  background-color: var(--warm-white);
  border-color: var(--sage-green);
  color: var(--sage-green);
}

.share-status {
  margin-left: 12px;
  font-size: 0.85rem;
  color: var(--stone);
  transition: opacity 0.3s ease;
}
